home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 095 / 131abas.arc / CONFIG.BAS next >
BASIC Source File  |  1985-12-01  |  76KB  |  1,379 lines

  1. 10000 REM $linesize: 132 $title: 'CONFIG.BAS V1.8, Copyright 1983,1984,1985 by D. Thomas Mack'; ' WARNING !!! DO NOT CHANGE, BYPASS OR REMOVE LINE 10000-10230
  2. 10010 ' CONFIG.BAS (RBBS-PC ver. CPC13.1A)
  3. 10030 'by D. Thomas Mack
  4. 10040 '   The Second Ring
  5. 10050 '   10210 Oxfordshire Road
  6. 10060 '   Great Falls, Virginia 22066
  7. 10070 '
  8. 10080 ' *******************************NOTICE*************************************
  9. 10090 ' *  A limited license is granted to all users of this program and it's   *
  10. 10100 ' *  companion program, RBBS-PC (ver. CPC13.1), to make copies of this    *
  11. 10110 ' *  program and distribute the copies to other users, on the following   *
  12. 10120 ' *  conditions:                                                          *
  13. 10130 ' *    1.   The notices contained in lines 25 through 44 of the programs  *
  14. 10140 ' *         are not altered, bypassed, or removed.                        *
  15. 10150 ' *    2.   The program is not to be disrtibuted to others in modified    *
  16. 10160 ' *         form (i.e. the line numbers must remain the same).            *
  17. 10170 ' *    3.   No fee is to be charged (or any other consideration received) *
  18. 10180 ' *         for coping or distributing these programs without an express  *
  19. 10190 ' *         written agreement with D. Thomas Mack, The Second Ring, 10210 *
  20. 10200 ' *         Oxfordshire Road, Great falls, Virginia 22006                 *
  21. 10210 ' *                                                                       *
  22. 10220 ' *   Copyright (c) 1983, 1984, 1985 D. Thomas Mack, The Second Ring      *
  23. 10230 ' *************************************************************************
  24. 10240 DEFINT A-Z:CLEAR:DIM A$(10),SA(7),MD(21),FS(10),UA(16),HA$(9),DNLD$(99)
  25. 10250 WIDTH 80:CLS:I!=FRE(C$):KEY OFF:LOCATE ,,0
  26. 10260 PRINT TAB(60)"tm":PRINT TAB(16) STRING$(15,205)" U S E R W A R E "STRING$(15,205)
  27. 10270 PRINT:PRINT TAB(17)"Capital PC User Group User-Supported Software":PRINT:PRINT TAB(7) CHR$(214)STRING$(62,196)CHR$(183)
  28. 10280 FOR I=1 TO 12:READ A$:PRINT TAB(7) CHR$(186);A$;SPACE$(62-LEN(A$));CHR$(186):NEXT
  29. 10290 PRINT TAB(7) CHR$(211)STRING$(62,196)CHR$(189):PRINT TAB(21)"Copyright (c) 1983, 1984, 1985 Tom Mack, 10210 Oxfordshire Rd., Great Falls, VA
  30. 10300 DATA"    If you are using RBBS-PC CPC13.1 and find it valuable, I
  31. 10310 DATA"    suggest you consider a contribution to
  32. 10320 DATA"
  33. 10330 DATA"                 Capital PC Software Exchange
  34. 10340 DATA"                     Post Office Box 6128
  35. 10350 DATA"                Silver Spring, Maryland  20906
  36. 10360 DATA"
  37. 10370 DATA"    You are free to copy and share RBBS-PC CPC13.1 with
  38. 10380 DATA"    others on these three conditions:
  39. 10390 DATA"      1.  This program is not distributed in modified form.
  40. 10400 DATA"      2.  No fee or consideration is charged.
  41. 10410 DATA"      3.  This notice is not bypassed or removed.
  42. 10420 DEF FNTI!=CSNG(FIX((VAL(MID$(TIME$,1,2))*60*60)+(VAL(MID$(TIME$,4,2))*60)+(VAL(MID$(TIME$,7,2))*1))) ' CPC10
  43. 10422 DEF FNHSH(X$)=((ASC(X$)*100 + ASC(MID$(X$,LEN(X$)/2,1))*10 + ASC(RIGHT$(X$,1))) MOD UB) + 1
  44. 10424 DEF FNHSH2(X$)=(ASC(MID$(X$,2,1))*10 + 7) MOD UB
  45. 10430 CA$="RBBS-PC.DEF":M$="Z":MAXD=10
  46. 10440 FGR=7
  47. 10450 BGR=0
  48. 10460 BDR=0
  49. 10470 IA!=FNTI!+5
  50. 10480 IF FNTI!<IA! THEN LOCATE 22,15:GOTO 10480
  51. 10490 LOCATE 22,15:PRINT SPC(64):LOCATE 22,15:PRINT"Will you be running multiple copies of RBBS-PC (YES or NO)?";
  52. 10500 GOSUB 22380:ON AB GOTO 10530,10510,10490,10490
  53. 10510 GOSUB 22480
  54. 10520 ' *************************************************************************
  55. 10530 ON ERROR GOTO 60010:DD$="C":GOSUB 10540:SG$=SG1$:FILE$=CA$:GOSUB 30000:IF OK THEN GOTO 10535
  56. 10531 GOSUB 31060:PRINT CA$+" file not found.  A new one will be created.";:IA!=FNTI!+5:GOSUB 60440
  57. 10532 GOSUB 31060:PRINT "Default drive on which RBBS is to reside (A-"+M$+"): ";:LINE INPUT;HJ$:GOSUB 50654:IF LEN(HJ$)<>1 OR HJ$<"A" OR HJ$>M$ THEN 10532
  58. 10533 DD$=HJ$:GOSUB 10540:GOTO 11870
  59. 10535 OPEN "I",#1,CA$:GOTO 11590
  60. 10540 D$=DD$+":":FA=0:IB=0:TA=NOT FA:MB=9:MC=1:EA$="IBM's DOS":RA$="INTERNAL":UB=16:ME$=D$+"MESSAGES":MF$=D$+"MESSAGES.BAK":CB$=D$+"CALLERS":CC$=D$+"COMMENTS":UC$=D$+"USERS":C$="":HA$="HELP0":HA$(1)="HELP01":HA$(2)="HELP02":HA$(3)="HELP03"
  61. 10720 HA$(4)="HELP04":HA$(5)="HELP05":HA$(6)="HELP06":HA$(7)="HELP07":HA$(8)="HELP08":HA$(9)="HELP09":BA$="BULLET":BB$="BULLET":WA$=D$+"WELCOME":NA$=D$+"NEWUSER":MG$=D$+"MENU1":MH$=D$+"MENU2":MI$=D$+"MENU3":MJ$=D$+"MENU4":MK$=D$+"MENU5"
  62. 10880 CD$=D$+"CONFENCE":BC$=D$+"TRASHCAN":VA=0:OA=TA:UD=FA:CK=FA:PL=23:LW=19:WB=FA:DIR$="DIR":TB$=DD$:BD$=TB$:HB$=TB$:DA=2:NB$="TOM":NC$="MACK":PA$="RBBS-PC":FF$="RBBS-PC":PB$="CPC12":XPR=0:VER$="(Version 1.9 )":CE=1:ML=0:VA=ML:DB=5:SB=10
  63. 11110 CF=0:KA$=PA$:ND=5:SF=10:FOR I=1 TO 7:SA(I)=SF:NEXT:MM=5:FOR I=1 TO 21:MD(I)=MM:NEXT:FC=5:FOR I=1 TO 10:FS(I)=FC:NEXT:UE=5:FOR I=1 TO 16:UA(I)=UE:NEXT:PD$=TB$+":"+"PASSWRDS":CG=3:CH=5:WC=SB:MN=5:FD$=DD$+DD$:MO$=DD$:UF$="99":RB$=D$+"RBBS.BAT":PC=SB
  64. 11204 FB$=TB$+":"+"FILESEC":SC=10:SD=10:SE=0:SY$="IBMPC":TY=180:UPX!=0:B$="300"
  65. 11270 CI$=D$+"RCTTY.BAT":OB$="NO":OC$="NO":BE=0:PCJR=0:TC!=72:MP=5:LA=1:AC=800:AD=2200:CL=FA:OD=TA:M13$="COM1":RC=TA:BF=TA:MW$=". ":M26=FA:M28=FA:M29=FA:BG=6:CM=0:SM1$="<ESC>  sysop sign-on maintenance/page.":SM2$=" <F1>  return to DOS.
  66. 11490 SM3$=" <F2>  Temporarily exit to DOS.":SM4$=" <F3>  toggle Line Printer.":SM5$=" <F4>  toggle SYSOP Page Bell.":SM6$=" <F5>  force on-line state.":SM7$=" <F6>  toggle SYSOP available.":SM8$=" <F7>  SYSOP gets system after this caller.
  67. 11550 SM9$=" <F8>  grant temporary SYSOP privileges.":SH$=" <F9>  toggle SNOOP.":SI$="<F10>  force CHAT - ESC to end.":SG1$="ATM0Q1S2=255S10=30E0S0=0    "
  68. 11551 DNLD.SUB=0:M30=FA:M31=FA:M32=FA:M34=FA:M35=FA:M36=TA:M37=FA:M39=FA:M33$="":M1$="ATZ":M2$="ATS1?":M3$="ATQ0X1V1A":M4$="ATQ1E1H1M0":M38$=DD$+":":RETURN
  69. 11580 ' RBBS-PC Configuration Program for Compilable RBBS-PC
  70. 11590 LOCATE 22,15:PRINT SPC(64);
  71. 11600 INPUT #1,FD$,PA$,PB$,NB$,NC$,CE,AC,AD,TC!,MP,LA,UF$,XPR,BG,BE,PCJR,CL,MG$,MH$,MI$,MJ$,MK$,CD$,VA,OA,UD,PL,LW,WB,MO$
  72. 11610 GOSUB 22340
  73. 11620 INPUT #1,ME$,MF$,CB$,CC$,UC$,WA$,NA$,DIR$,M13$,OD,SG$,TB$,DA,FGR,BGR,BDR,RB$,CI$:IF LEN(SG$)<>28 THEN SG$=SG1$
  74. 11630 GOSUB 22340
  75. 11640 INPUT #1,OB$,OC$,HA$(1),HA$(2),HA$(3),HA$(4),HA$(5),HA$(6),HA$(7),HA$(8),HA$(9),BA$,BB$,BD$,RC,BF,SD,MC,SE,CF,UB,MQ!,BC$:GOSUB 21895
  76. 11650 GOSUB 22340
  77. 11660 INPUT #1,ML,DB,SB,FB$,SC,KA$,ND,SA(1),SA(2),SA(3),SA(4),SA(5),SA(6),SA(7),PD$,CG,CH,WC,MN,M26
  78. 11670 GOSUB 22340
  79. 11680 INPUT #1,MD(1),MD(2),MD(3),MD(4),MD(5),MD(6),MD(7),MD(8),MD(9),MD(10),MD(11),MD(12),MD(13),MD(14),MD(15),MD(16),MD(17),MD(18),MD(19),MD(20),MD(21),SY$,TY
  80. 11690 GOSUB 22340
  81. 11700 INPUT #1,FS(1),FS(2),FS(3),FS(4),FS(5),FS(6),FS(7),FS(8),FS(9),FS(10),UA(1),UA(2),UA(3),UA(4),UA(5),UA(6),UA(7),UA(8),UA(9),UA(10),UA(11),UA(12),UA(13),UA(14),UA(15),UA(16),UPX!,CM,CK,FF$,M28,M29,MW$,B$
  82. 11705 INPUT #1,SM1$,SM2$,SM3$,SM4$,SM5$,SM6$,SM7$,SM8$,SM9$,SH$,SI$,PC
  83. 11706 INPUT #1,DNLD.SUB,M30,M31,M32,M33$,M34,M35,M36,M37,M1$,M2$,M3$,M4$,M38$,M39,LSB,MSB,LCR,MCR,LSR,MSR
  84. 11707 IF DNLD.SUB<1 OR DNLD.SUB>99 THEN GOTO 11710 ELSE FOR I=1 TO DNLD.SUB:INPUT #1,DNLD$(I):NEXT
  85. 11710 GOSUB 22340
  86. 11720 BA$=RIGHT$(BA$,(LEN(BA$)-2))
  87. 11730 BB$=RIGHT$(BB$,(LEN(BB$)-2))
  88. 11740 IF CF=0 THEN RA$="INTERNAL" ELSE RA$="SYSTEM
  89. 11750 HB$=LEFT$(HA$(1),1)
  90. 11760 HA$(1)=RIGHT$(HA$(1),(LEN(HA$(1))-2))
  91. 11770 HA$=LEFT$(HA$(1),LEN(HA$(1))-1)
  92. 11780 SF=SA(1):FOR I=2 TO 7:IF SA(I)>SF THEN GOTO 11790 ELSE SF=SA(I)
  93. 11790 NEXT
  94. 11800 MM=MD(1):FOR I=2 TO 21:IF MD(I)>MM THEN GOTO 11810 ELSE MM=MD(I)
  95. 11810 NEXT
  96. 11820 FC=FS(1):FOR I=2 TO 10:IF FS(I)>FC THEN GOTO 11830 ELSE FC=FS(I)
  97. 11830 NEXT
  98. 11840 UE=UA(1):FOR I=2 TO 16:IF UA(I)>UE THEN GOTO 11850 ELSE UE=UA(I)
  99. 11850 NEXT
  100. 11860 CLOSE #1:GOSUB 22340
  101. 11862 GOSUB 50480:GOSUB 22340
  102. 11864 GOSUB 50530:GOSUB 22340
  103. 11870 IF XPR=0 THEN M5$="NOVICE
  104. 11880 IF XPR=-1 THEN M5$="EXPERT
  105. 11890 M6$=RIGHT$(FD$,1)
  106. 11900 M7$=LEFT$(FD$,(LEN(FD$)-1))
  107. 11910 M10$="ON":IF BE=0 THEN M10$="OFF
  108. 11912 M12$="BASICA":IF CL=TA THEN M12$="COMPILED
  109. 11914 M15$="NO":IF OD=TA THEN M15$="YES
  110. 11916 M14$="ON":IF VAL(MID$(SG$,4,1))=0 THEN M14$="OFF
  111. 11918 M16$="NO":IF RC=TA THEN M16$="YES
  112. 11920 M17$="NO":IF BF=TA THEN M17$="YES
  113. 11922 M18$="YES":IF OA=FA THEN M18$="NO
  114. 11924 M19$="NO":IF UD=TA THEN M19$="YES
  115. 11926 M20$="NO":IF CK=TA THEN M20$="YES
  116. 11928 M21$="NO":IF WB=TA THEN M21$="YES
  117. 11930 IF PA$="" THEN MN1$="(Disabled)" ELSE MN1$=PA$
  118. 11931 IF PB$="" THEN MN2$="(Disabled)" ELSE MN2$=PB$
  119. 11932 M11$="NO":IF MW$=". "+CHR$(7) THEN M11$="YES
  120. 11934 M26$="NO":IF M26=TA THEN M26$="YES
  121. 11936 M28$="NO":IF M28=TA THEN M28$="YES
  122. 11938 M29$="NO":IF M29=TA THEN M29$="YES
  123. 11940 M30$="NO":IF M30=TA THEN M30$="YES
  124. 11942 M31$="NO":IF M31=TA THEN M31$="YES
  125. 11944 M32$="NO":IF M32=TA THEN M32$="YES
  126. 11946 M34$="NO":IF M34=TA THEN M34$="YES
  127. 11948 M35$="NO":IF M35=TA THEN M35$="YES
  128. 11950 M36$="NO":IF M36=TA THEN M36$="YES
  129. 11952 M37$="NO":IF M37=TA THEN M37$="YES
  130. 11953 M39$="NO":IF M39=TA THEN M39$="YES
  131. 12150 Y$="
  132. 12151 F=0
  133. 12155 MAINMSG$=ME$
  134. 12156 MAINUSR$=UC$
  135. 12160 KEY OFF:GOSUB 22340
  136. 12161 IO=0            ' set initial message number to 0
  137. 12162 ID=1            ' USERS file    -- first record number
  138. 12163 IE=ID           ' USERS file    -- next available record number
  139. 12164 IG=UB           ' USERS file    -- last record number
  140. 12165 IJ=1+MC+1       ' MESSAGES file -- first record of messages
  141. 12166 II=IJ           ' MESSAGES file -- next available record number
  142. 12167 IH=5*MP+1+MC    ' MESSAGES file -- last record number
  143. 12168 IM=MP           ' MESSAGES file -- maximum number of messages
  144. 12169 FILE$=ME$:MF=0:UF=0
  145. 12170 GOSUB 30000     ' If MESSAGES exist, get checkpoint record
  146. 12171 IF OK THEN MF=OK:GOSUB 30040:UB=IG:MQ!=IH:MP=INT((IH-IJ)/5)+1
  147. 12172 IF MP>250 THEN MP=VAL("250")
  148. 12173 IF IM<1 THEN IM=MP:GOSUB 30450  ' Assure number of msgs.>0
  149. 12174 FILE$=UC$       ' Check for USERS file
  150. 12175 GOSUB 30000     ' If USERS file exist, set values
  151. 12176 IF OK THEN UF=OK:FILE$=UC$:GOSUB 30180:UB=IG
  152. 12177 IF NOT MF AND F<>2 THEN IE=UG+1      ' if no MESSAGES file, assume USERS full
  153. 12178 IF MF THEN GOSUB 30450      ' if MESSAGES file, re-write checkpoint
  154. 12179 IF NOT MF THEN GOSUB 30230  ' write new MESSAGES file if none
  155. 12180 IF NOT UF AND MF THEN UB=IG:GOSUB 50000  ' write new USERS file if none
  156. 12181 IF NOT UF AND NOT MF THEN GOSUB 50000  ' write new USERS file if none
  157. 12182 FOR I=1 TO 10:KEY I,"":NEXT
  158. 12183 B1=UB:GOSUB 22140
  159. 12190 COLOR FGR,BGR,BDR:CLS:I!=FRE(C$)
  160. 12200 COLOR 0,7,0:LOCATE 4,10:PRINT"RBBS-PC CPC13.1A CONFIGURATION PROGRAM "+VER$:COLOR FGR,BGR,BDR
  161. 12210 LOCATE 1,1,0:PRINT"Copyright (c) 1983,84,85 Tom Mack, 10210 Oxfordshire Rd., Great Falls, VA 22066";
  162. 12215 IF F THEN GOSUB 24970
  163. 12220 LOCATE  6,2:PRINT"  F1            Global RBBS-PC Parameters (part 1)
  164. 12230 LOCATE  8,2:PRINT"  F2            Global RBBS-PC Parameters (part 2)
  165. 12240 LOCATE 10,2:PRINT"  F3            Parameters for static RBBS-PC Files
  166. 12250 LOCATE 12,2:PRINT"  F4            Parameters for dynamic RBBS-PC's Files
  167. 12260 LOCATE 14,2:PRINT"  F5            Parameters for RBBS-PC's 'Doors'
  168. 12270 LOCATE 16,2:PRINT"  F6            Parameters for RBBS-PC's Security
  169. 12280 LOCATE 18,2:PRINT"  F7            Parameters for multiple RBBS-PC's
  170. 12290 LOCATE 20,2:PRINT"  F8            RBBS-PC utilities
  171. 12295 LOCATE 22,2:PRINT"  F9            Use of DOS subdirectories":XX$="Press END to terminate or select function key to change parameters shown.":GOSUB 50345
  172. 12310 GOSUB 22160
  173. 12320 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,12350,12360,12350
  174. 12330 GOTO 12310
  175. 12350 GOSUB 60380:GOTO 12310
  176. 12360 CN=1
  177. 12370 GOSUB 24800
  178. 12380 LOCATE  3,10:PRINT" 1. SYSOP's First Name --------------------------- "+NB$
  179. 12390 LOCATE  4,10:PRINT" 2. SYSOP's Last Name ---------------------------- "+NC$
  180. 12400 LOCATE  5,10:PRINT" 3. Password #1 for SYSOP to sign on remotely ---- "+MN1$
  181. 12410 LOCATE  6,10:PRINT" 4. Password #2 for SYSOP to sign on remotely----- "+MN2$
  182. 12420 LOCATE  7,10:PRINT" 5. Password for SYSOP to sign on locally -------- "+KA$
  183. 12430 LOCATE  8,10:PRINT" 6. SYSOP's default sign-on mode ----------------- "+M5$
  184. 12440 LOCATE  9,10:PRINT" 7. SYSOP's office hours ------------------------ "STR$(AC);" to "STR$(AD)
  185. 12445 LOCATE 10,10:PRINT" 8. Page SYSOP using printer's bell -------------- "+M11$
  186. 12450 LOCATE 11,10:PRINT" 9. Number of rings to wait before answering -----"STR$(CE)
  187. 12460 LOCATE 12,10:PRINT"10. Deny access to callers who use 300 baud ------ "+M34$
  188. 12470 LOCATE 13,10:PRINT"11. Are you using ANSI.SYS with a color monitor -- "+M35$
  189. 12480 LOCATE 14,10:PRINT"12. Go off-line whenever a DISK FULL occurs ------ "+M36$
  190. 12490 LOCATE 15,10:PRINT"13. Prompt bell default is ----------------------- "+M10$
  191. 12500 LOCATE 16,10:PRINT"14. Maximum time per session (in minutes) --------"STR$(TC!)
  192. 12510 LOCATE 17,10:PRINT"15. Limit each user to"+STR$(TC!)+" minutes/day? "+STRING$((14-LEN(STR$(TC!))),45)+" "+M26$
  193. 12530 LOCATE 18,10:PRINT"16. # Months of inactivty before user deleted ----"STR$(LA)
  194. 12560 LOCATE 19,10:PRINT"17. Communications port to be used by RBBS-PC ---- "+M13$
  195. 12570 LOCATE 20,10:PRINT"18. Version of DOS that RBBS-PC will run under ---"STR$(DA)
  196. 12575 LOCATE 21,10:PRINT"19. Name of RBBS-PC shown initially is ----------- "+FF$
  197. 12580 GOSUB 24890
  198. 12590 GOSUB 22160
  199. 12600 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,12190,14200,12620
  200. 12610 GOTO 12590
  201. 12620 GOSUB 50340:IF VAL(HJ$)<1 OR VAL(HJ$)>19 THEN 12580 ELSE ON VAL(HJ$) GOTO 12840,12910,12980,13060,12670,13140,13210,13224,13228,13238,13242,13246,13750,13840,16650,13940,14120,15240,13131
  202. 12670 GOSUB 31060:PRINT"Enter password (8 characters or less)";:GOSUB 14990: IF LEN(HJ$)>8 OR INSTR(HJ$,"0!") THEN HJ$="5":GOTO 12670 ELSE KA$=HJ$:GOTO 12360
  203. 12730 GOSUB 13590: UF$=HJ$:GOTO 14570
  204. 12840 LOCATE 24,5:PRINT"What is the SYSOP's FIRST name? ";
  205. 12850 LINE INPUT;HJ$
  206. 12860 IF HJ$="" THEN GOTO 12840
  207. 12870 IF LEN(HJ$)<3 GOTO 12840
  208. 12880 GOSUB 50654
  209. 12890 NB$=HJ$
  210. 12900 GOTO 12360
  211. 12910 LOCATE 24,5:PRINT"What is the SYSOP's LAST name? ";
  212. 12920 LINE INPUT;HJ$
  213. 12930 IF HJ$="" THEN GOTO 12910
  214. 12940 IF LEN(HJ$)<3 GOTO 12910
  215. 12950 GOSUB 50654
  216. 12960 NC$=HJ$
  217. 12970 GOTO 12360
  218. 12980 LOCATE 24,5:PRINT"What is the SYSOP's Password #1? ";
  219. 12990 LINE INPUT;HJ$
  220. 13020 GOSUB 50654
  221. 13030 PA$=HJ$
  222. 13040 IF PA$="" THEN MN1$="(Disabled)" ELSE MN1$=PA$
  223. 13050 GOTO 12360
  224. 13060 LOCATE 24,5:PRINT"What is the SYSOP's Password #2? ";
  225. 13070 LINE INPUT;HJ$
  226. 13100 GOSUB 50654
  227. 13110 PB$=HJ$
  228. 13120 IF PB$="" THEN MN2$="(Disabled)" ELSE MN2$=PB$
  229. 13130 GOTO 12360
  230. 13131 LOCATE 24,5:PRINT"Enter name for this RBBS-PC (19 characters or less) ";
  231. 13132 LINE INPUT;HJ$
  232. 13133 IF LEN(HJ$)>19 GOTO 13131
  233. 13134 GOSUB 50654
  234. 13135 FF$=HJ$
  235. 13136 GOTO 12360
  236. 13140 LOCATE 24,5:PRINT"SYSOP's default sign-on mode (EXPERT/NOVICE)? ";
  237. 13150 LINE INPUT;HJ$
  238. 13160 IF LEN(HJ$)=6 OR LEN(HJ$)=1 THEN GOTO 13170 ELSE GOTO 13140
  239. 13170 GOSUB 50654
  240. 13180 IF HJ$="E" OR HJ$="EXPERT" THEN M5$="EXPERT":GOTO 12360
  241. 13190 IF HJ$="N" OR HJ$="NOVICE" THEN M5$="NOVICE":GOTO 12360
  242. 13200 GOTO 13140
  243. 13210 LOCATE 24,5:PRINT"What is the earliest SYSOP wants to be paged? -- HHMM ";
  244. 13211 LINE INPUT;HJ$
  245. 13212 IF LEN(HJ$)<>4 GOTO 13210
  246. 13213 IF FIX(VAL(MID$(HJ$,1,2)))<0 OR FIX(VAL(MID$(HJ$,1,2)))>24 OR FIX(VAL(MID$(HJ$,3,2)))<0 OR FIX(VAL(MID$(HJ$,3,2)))>59 THEN GOTO 13210
  247. 13214 AC=VAL(HJ$)
  248. 13215 IF AC<0 OR AC>2400 THEN GOTO 13210
  249. 13216 LOCATE 25,5:PRINT"What is the latest SYSOP wants to be paged? ---- HHMM ";
  250. 13217 LINE INPUT;HJ$
  251. 13218 IF LEN(HJ$)<>4 GOTO 13216
  252. 13219 IF FIX(VAL(MID$(HJ$,1,2)))<0 OR FIX(VAL(MID$(HJ$,1,2)))>24 OR FIX(VAL(MID$(HJ$,3,2)))<0 OR FIX(VAL(MID$(HJ$,3,2)))>59 THEN GOTO 13216
  253. 13220 AD=VAL(HJ$)
  254. 13221 IF AD<0 OR AD>2400 THEN GOTO 13216
  255. 13222 IF AC>AD THEN SWAP AC,AD
  256. 13223 GOTO 12360
  257. 13224 XX$="Use on-line printer's bell to the page SYSOP? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 13226,13226,13224,13224
  258. 13226 M11$=HJ$
  259. 13227 GOTO 12360
  260. 13228 A$="":MID$(SG$,24,5)="1Q0X1"
  261. 13229 XX$="How many rings should RBBS-PC wait before answering? "+A$:GOSUB 50345
  262. 13230 LINE INPUT;HJ$
  263. 13231 CE=FIX(VAL(HJ$))
  264. 13232 IF CE<0 OR CE>255 THEN GOTO 13228 ELSE IF CE=0 THEN MID$(SG$,24,5)="1Q0X1":GOTO 12360
  265. 13233 XX$="Next call answered after"+STR$(CE)+" rings. Do you want ringback? (YES/NO)":GOSUB 50345
  266. 13234 GOSUB 22380:ON AB GOTO 13237,13235,13233,13233
  267. 13235 IF CE>5 THEN A$="(<6 for ringback)":GOTO 13229
  268. 13236 MID$(SG$,24,5)="255  ":GOTO 12360
  269. 13237 MID$(SG$,24,5)="0    ":GOTO 12360
  270. 13238 LOCATE 24,5:PRINT"Do you want to accept calls from users at 300 BAUD (YES OR NO) ";
  271. 13239 GOSUB 22380:ON AB GOTO 13240,13240,13238,13238
  272. 13240 M34$=HJ$
  273. 13241 GOTO 12360
  274. 13242 LOCATE 24,5:PRINT" Using ANSI.SYS for color/graphics on your color monitor (YES OR NO) ";
  275. 13243 GOSUB 22380:ON AB GOTO 13244,13244,13242,13242
  276. 13244 M35$=HJ$
  277. 13245 GOTO 12360
  278. 13246 LOCATE 24,5:PRINT"Should RBBS-PC go off-line when DISK FULL occurs (YES OR NO) ";
  279. 13247 GOSUB 22380:ON AB GOTO 13248,13248,13246,13246
  280. 13248 M36$=HJ$
  281. 13249 GOTO 12360
  282. 13400 LOCATE 24,5:PRINT"Specify single drive in the range A->"+M$+" for "+A$;
  283. 13410 LINE INPUT;HJ$
  284. 13420 IF LEN(HJ$)<>1 THEN GOTO 13400
  285. 13430 GOSUB 50654
  286. 13440 IF HJ$<"A" OR HJ$>M$ THEN GOTO 13400
  287. 13460 RETURN
  288. 13470 LOCATE 24,5:PRINT"Specify download drives (max of"+STR$(MAXD)+" in the range A-> "+M$+"). ";
  289. 13480 LINE INPUT;HJ$
  290. 13490 IF LEN(HJ$)<1 OR LEN(HJ$)>MAXD THEN GOTO 13470
  291. 13500 GOSUB 50654
  292. 13510 FOR I=1 TO LEN(HJ$)
  293. 13520 A$(I)=MID$(HJ$,I,1)
  294. 13530 NEXT
  295. 13540 FOR I=1 TO LEN(HJ$)
  296. 13550 IF A$(I)<"A" OR A$(I)>M$ THEN GOTO 13470
  297. 13560 NEXT
  298. 13570 M7$=HJ$
  299. 13571 IF DNLD.SUB<1 GOTO 14570
  300. 13572 FOR I=1 TO DNLD.SUB
  301. 13573   IF INSTR(1,M7$,LEFT$(DNLD$(I),1))=0 THEN DNLD$(I)=""
  302. 13577 NEXT
  303. 13578 STOPIT=DNLD.SUB
  304. 13579 FOR I=1 TO STOPIT
  305. 13580   IF DNLD$(I)<>"" THEN GOTO 13583
  306. 13581   DNLD$(I)=DNLD$(I+1)
  307. 13582   DNLD$(I+1)=""
  308. 13583 NEXT
  309. 13584 DNLD.SUB=0
  310. 13585 FOR I=1 TO STOPIT
  311. 13586   IF DNLD$(I)<>"" THEN DNLD.SUB=DNLD.SUB+1
  312. 13587 NEXT
  313. 13588 GOTO 14570
  314. 13590 A$="Name of upload directory (max of 8 characters).":MAX=8:GOTO 13599
  315. 13591 A$="Master directory name--used as ext. for others. (3 char. max).":MAX=3
  316. 13599 LOCATE 24,5:PRINT A$;
  317. 13600 LINE INPUT;HJ$:GOSUB 50654
  318. 13610 IF LEN(HJ$)<1 OR LEN(HJ$)>MAX THEN GOTO 13599
  319. 13615 I=0:GOSUB 25920:IF I=0 THEN RETURN ELSE GOTO 13599
  320. 13750 LOCATE 24,5:PRINT"Prompt bell default? (ON or OFF) ";
  321. 13760 LINE INPUT;HJ$
  322. 13770 IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 13750
  323. 13780 GOSUB 50654
  324. 13790 IF HJ$="ON" THEN GOTO 13820
  325. 13800 IF HJ$="OFF" THEN GOTO 13820
  326. 13810 GOTO 13750
  327. 13820 M10$=HJ$
  328. 13830 GOTO 12360
  329. 13840 LOCATE 24,5:PRINT"Set maximum minutes a user can stay on the system ";
  330. 13850 LINE INPUT;HJ$
  331. 13860 TC!=VAL(HJ$)
  332. 13870 IF TC!<0 OR TC!>1440 THEN GOTO 13840
  333. 13880 GOTO 12360
  334. 13890 J=250:IF ((MQ!-1-MC)/5)<J THEN J=(MQ!-1-MC)/5
  335. 13895 GOSUB 50340:LOCATE 24,5:PRINT"Set maximum number of messages allowed (MAX="+STR$(FIX(J))+")";
  336. 13900 LINE INPUT;HJ$
  337. 13910 MP=VAL(HJ$)
  338. 13920 IF MP<1 AND MP>250 THEN GOTO 13890
  339. 13922 IF MP>0 AND MP<251 AND MP<J+1 THEN GOTO 13929
  340. 13924 XX$="Increase the "+ME$+" file to "+STR$((MP*5)+1+MC)+" records? (YES OR NO) ":GOSUB 50345
  341. 13926 GOSUB 22380:ON AB GOTO 13890,13927,13890,13890
  342. 13927 IM=MP:GOSUB 30450:B3!=(MP*5)+1+MC:GOSUB 22080:GOTO 21550
  343. 13929 IM=MP:GOSUB 30450
  344. 13930 GOTO 21550
  345. 13940 LOCATE 24,5:PRINT"Set number of months before an inactive user is purged. ";
  346. 13950 LINE INPUT;HJ$
  347. 13960 LA=VAL(HJ$)
  348. 13970 IF LA<1 OR LA>12 THEN GOTO 13940
  349. 13980 GOTO 12360
  350. 14120 CP1=1
  351. 14130 CP2=2
  352. 14140 LOCATE 24,5:PRINT"Number of communication port to be used ("+STR$(CP1)+" or"+STR$(CP2)+" )? ";
  353. 14150 LINE INPUT;HJ$
  354. 14160 IF LEN(HJ$)<>1 THEN GOTO 14120
  355. 14170 IF FIX(VAL(MID$(HJ$,1,1)))<CP1 OR FIX(VAL(MID$(HJ$,1,1)))>CP2 THEN GOTO 14120
  356. 14180 M13$="COM"+HJ$
  357. 14190 GOTO 12360
  358. 14200 CN=2
  359. 14210 GOSUB 24800
  360. 14220 LOCATE  3,10:PRINT"21. Foreground color (for color monitors) is -----"STR$(FGR)
  361. 14230 LOCATE  4,10:PRINT"22. Background color (for color monitors) is -----"STR$(BGR)
  362. 14240 LOCATE  5,10:PRINT"23. The border color (for color monitors) is -----"STR$(BDR)
  363. 14250 LOCATE  6,10:PRINT"24. The modem speaker default is ----------------- "+M14$
  364. 14260 LOCATE  7,10:PRINT"25. Remind users of messages that they left ------ "+M16$
  365. 14270 LOCATE  8,10:PRINT"26. Remind users of # uploads and downloads? ----- "+M19$
  366. 14275 LOCATE  9,10:PRINT"27. Remind users of their terminal profile? ------ "+M20$
  367. 14280 LOCATE 10,10:PRINT"28. Default user page length is ------------------"STR$(PL)
  368. 14290 LOCATE 11,10:PRINT"29. Maximum number of lines allowed per message --"STR$(LW)
  369. 14300 LOCATE 12,10:PRINT"30. Require non-ascii protocol for binary files -- "+M17$
  370. 14305 LOCATE 13,10:PRINT"31. Is MICROCOM's MNP protocol available? -------- "+M29$
  371. 14310 LOCATE 14,10:PRINT"32. Omit ";DIR$;" from N)ew command ";STRING$(22-LEN(DIR$),"-");" ";OB$
  372. 14320 LOCATE 15,10:PRINT"33. Omit ";+UF$;" from N)ew command ";STRING$(22-LEN(UF$),"-");" ";OC$
  373. 14330 LOCATE 16,10:PRINT"34. Is system 'welcome' interruptable? ----------- "+M18$
  374. 14340 LOCATE 17,10:PRINT"35. Are system bulletins to be 'optional'? ------- "+M15$
  375. 14360 GOSUB 16062:LOCATE 18,10:PRINT"36. Type of PC RBBS-PC will be running on? ------- "+M27$
  376. 14365 LOCATE 19,10:PRINT"37. Issue modem commands between rings ----------- "+M28$
  377. 14366 LOCATE 20,10:PRINT"38. Baud rate to initially open modem at --------- "+B$
  378. 14367 LOCATE 21,10:PRINT"39. Seconds waited before logging off idle users -"+STR$(TY)
  379. 14368 LOCATE 22,10:PRINT"40. Are you using a 'DUMB' auto-answer modem? -----"+M39$
  380. 14370 GOSUB 24890
  381. 14380 GOSUB 22160
  382. 14390 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,12360,14570,14410
  383. 14400 GOTO 14380
  384. 14410 GOSUB 50340:IF VAL(HJ$)<21 OR VAL(HJ$)>40 THEN 14370 ELSE ON VAL(HJ$)-20 GOTO 14420,14430,14440,15710,15800,16690,16722,16730,16790,15880,15911,15920,15960,16000,15840,16040,16121,16124,16031,16725
  385. 14420 GOSUB 15520: GOTO 15530
  386. 14430 GOSUB 15520: GOTO 15590
  387. 14440 GOSUB 15520: GOTO 15650
  388. 14570 CN=3
  389. 14580 GOSUB 24800
  390. 14590 LOCATE  3,10:PRINT"41. Drive containing RBBS-PC bulletins is -------- "+BD$
  391. 14600 LOCATE  4,10:PRINT"42. Name of file describing 'bulletins' is ------- "+BA$
  392. 14610 LOCATE  5,10:PRINT"43. Number of active 'bulletins' -----------------"+STR$(BG)
  393. 14620 LOCATE  6,10:PRINT"44. Prefix used to name bulletin files is -------- "+BB$
  394. 14630 LOCATE  7,10:PRINT"45. Drive containing 'help' files is ------------- "+HB$
  395. 14640 LOCATE  8,10:PRINT"46. Prefix used to name the nine 'help' files ---- "+HA$
  396. 14650 LOCATE  9,10:PRINT"47. Name of 'newuser' file shown to new users ---- "+NA$
  397. 14660 LOCATE 10,10:PRINT"48. Name of 'welcome' file shown at logon -------- "+WA$
  398. 14670 LOCATE 11,10:PRINT"49. File directory ext. (name of master directory) "+DIR$
  399. 14680 LOCATE 12,10:PRINT"50. The SYSOP's command menu is named ------------ "+MG$
  400. 14690 LOCATE 13,10:PRINT"51. The main messages subsystem menu is named ---- "+MH$
  401. 14700 LOCATE 14,10:PRINT"52. The file subsystem menu is named ------------- "+MI$
  402. 14710 LOCATE 15,10:PRINT"53. The utilities subsystem menu is named -------- "+MJ$
  403. 14730 LOCATE 16,10:PRINT"54. Menu that lists available conferences is ----- "+CD$
  404. 14740 LOCATE 17,10:PRINT"55. File containing invalid user names ----------- "+BC$
  405. 14742 LOCATE 18,10:PRINT"56. Factor to extend session time for uploads ----"+STR$(UPX!)
  406. 14744 LOCATE 19,10:PRINT"57. Default system type for new callers ---------- "+SY$
  407. 14745 LOCATE 20,10:PRINT"58. Drive available for Uploading ---------------- "+M6$
  408. 14746 LOCATE 21,10:PRINT"59. Name of directory for uploading -------------- "+UF$
  409. 14747 LOCATE 22,10:PRINT"60. Drive(s) available for Downloading ----------- "+M7$
  410. 14750 GOSUB 24890
  411. 14760 GOSUB 22160
  412. 14770 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,14200,15340,14790
  413. 14780 GOTO 14760
  414. 14790 GOSUB 50340
  415. 14800 IF HJ$="41"THEN GOSUB 15160:BD$=TB$:GOTO 14570
  416. 14810 IF HJ$="42" THEN GOSUB 14970:BA$=HJ$: GOTO 14570
  417. 14820 IF HJ$="43" THEN GOTO 15290
  418. 14830 IF HJ$="44" THEN GOSUB 14970: IF LEN(HJ$)>6 THEN HJ$="44":GOTO 14810 ELSE BB$=HJ$: GOTO 14570
  419. 14840 IF HJ$="45" THEN GOSUB 15160:HB$=HJ$: GOTO 14570
  420. 14850 IF HJ$="46" THEN GOSUB 14970: IF LEN(HJ$)>7 THEN HJ$="44":GOTO 14810 ELSE HA$=HJ$: GOTO 14570
  421. 14860 IF HJ$="47" THEN GOSUB 17330: NA$=SJ$+":"+HJ$: GOTO 14570
  422. 14870 IF HJ$="48" THEN GOSUB 17330: WA$=SJ$+":"+HJ$: GOTO 14570
  423. 14880 IF HJ$="49" THEN GOSUB 13591: DIR$=HJ$: GOTO 14570
  424. 14890 IF HJ$="50" THEN GOSUB 17330: MG$=SJ$+":"+HJ$: GOTO 14570
  425. 14900 IF HJ$="51" THEN GOSUB 17330: MH$=SJ$+":"+HJ$: GOTO 14570
  426. 14910 IF HJ$="52" THEN GOSUB 17330: MI$=SJ$+":"+HJ$: GOTO 14570
  427. 14920 IF HJ$="53" THEN GOSUB 17330: MJ$=SJ$+":"+HJ$: GOTO 14570
  428. 14940 IF HJ$="54" THEN GOSUB 17330: CD$=SJ$+":"+HJ$: GOTO 14570
  429. 14950 IF HJ$="55" THEN GOSUB 17330: BC$=SJ$+":"+HJ$:GOTO 14570
  430. 14952 IF HJ$="56" THEN GOSUB 15234:GOTO 14570
  431. 14954 IF HJ$="57" THEN GOSUB 15236:GOTO 14570
  432. 14955 IF HJ$="58" THEN A$="uploading":GOSUB 13400:M6$=HJ$:IF LEN(M33$)>1 THEN MID$(M33$,1,1)=M6$:GOTO 14570 ELSE GOTO 14570
  433. 14956 IF HJ$="59" THEN GOTO 12730
  434. 14957 IF HJ$="60" THEN GOTO 13470
  435. 14960 GOTO 14750
  436. 14970 X$=HJ$
  437. 14980 GOSUB 31060:PRINT"Specify name of the file for option "+X$+". ";
  438. 14990 LINE INPUT;HJ$:GOSUB 50654
  439. 15000 IF LEN(HJ$)<1 OR LEN(HJ$)>12 THEN GOTO 14980
  440. 15010 L1=INSTR(HJ$,"."):IF L1=0 THEN IF LEN(HJ$)<9 THEN GOTO 15045 ELSE GOTO 14980
  441. 15020 IF L1>9 THEN GOTO 14980
  442. 15030 IF L1<2 THEN GOTO 14980
  443. 15040 IF LEN(HJ$)-L1>3 THEN GOTO 14980
  444. 15045 I=0:GOSUB 25920:IF I=0 THEN RETURN ELSE GOTO 14980
  445. 15160 X$=HJ$
  446. 15170 LOCATE 24,5:PRINT"Specify drive in the range A->"+M$+" for option "+X$". ";
  447. 15180 LINE INPUT;HJ$
  448. 15190 IF LEN(HJ$)<>1 THEN GOTO 15170
  449. 15200 GOSUB 50654
  450. 15210 IF HJ$<"A" OR HJ$>M$ THEN GOTO 15170
  451. 15220 TB$=HJ$
  452. 15230 RETURN
  453. 15234 LOCATE 24,5:PRINT "Extend by what fraction of time uploading ";:LINE INPUT;HJ$:IF VAL(HJ$)<0 OR VAL(HJ$)>10 THEN 15234 ELSE UPX!=VAL(HJ$):RETURN
  454. 15236 LOCATE 24,5:PRINT "Enter default system type ";:LINE INPUT;SY$:IF LEN(SY$)<2 THEN GOSUB 50340:GOTO 15236 ELSE RETURN
  455. 15240 LOCATE 24,5:PRINT"What version of DOS will RBBS-PC be running under (1, 2, or 3)?";
  456. 15250 LINE INPUT;HJ$
  457. 15260 B1=VAL(HJ$)
  458. 15270 IF B1<1 OR B1>3 THEN GOTO 15240
  459. 15280 DA=B1:GOTO 12360
  460. 15290 LOCATE 24,5:PRINT"Enter number of active 'bulletins' (0 to 99)";
  461. 15300 LINE INPUT;HJ$
  462. 15310 B1%=VAL(HJ$)
  463. 15320 IF B1%<0 OR B1%>99 THEN GOTO 15290
  464. 15330 BG=B1%:GOTO 14570
  465. 15340 CN=4
  466. 15350 GOSUB 24800
  467. 15360 LOCATE  4,10:PRINT"61. System file containing messages is named ----- "+ME$
  468. 15380 LOCATE  5,10:PRINT"62. System file for 'callers' is named ----------- "+CB$
  469. 15390 LOCATE  6,10:PRINT"63. System file for comments to SYSOP is named --- "+CC$
  470. 15400 LOCATE  7,10:PRINT"64. System file for recording users is named ----- "+UC$
  471. 15405 LOCATE  8,10:PRINT"65. Extended logging to 'callers' file ----------- "+M37$
  472. 15410 GOSUB 24890
  473. 15420 GOSUB 22160
  474. 15430 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,14570,16130,15450
  475. 15440 GOTO 15420
  476. 15450 GOSUB 50340
  477. 15460 IF HJ$="61" THEN GOSUB 17330: GOTO 15511
  478. 15480 IF HJ$="62" THEN GOSUB 17330: CB$=SJ$+":"+HJ$:GOTO 15340
  479. 15490 IF HJ$="63" THEN GOSUB 17330: CC$=SJ$+":"+HJ$:GOTO 15340
  480. 15500 IF HJ$="64" THEN GOSUB 17330: GOTO 15512
  481. 15505 IF HJ$="65" THEN GOTO 15991
  482. 15510 GOTO 15410
  483. 15511 IF LEN(HJ$)>8 OR INSTR(HJ$,".") THEN HJ$="61":GOTO 15460 ELSE ME$=SJ$+":"+HJ$:MF$=ME$+".BAK":MAINMSG$=ME$:GOTO 15340
  484. 15512 IF LEN(HJ$)>8 OR INSTR(HJ$,".") THEN HJ$="64":GOTO 15500 ELSE UC$=SJ$+":"+HJ$:MAINUSR$=UC$:GOTO 15340
  485. 15520 LOCATE 24,5:PRINT"(See the description of the COLOR statement in Basic.)";:RETURN
  486. 15530 LOCATE 25,5:PRINT"Enter foreground color (a value between 0 and 15)";
  487. 15540 LINE INPUT;HJ$
  488. 15550 B1=VAL(HJ$)
  489. 15560 IF B1<0 OR B1>15 THEN GOTO 15530
  490. 15570 FGR=B1
  491. 15580 GOTO 14200
  492. 15590 LOCATE 25,5:PRINT"Enter background color (a value between 0 and 7)";
  493. 15600 LINE INPUT;HJ$
  494. 15610 B1=VAL(HJ$)
  495. 15620 IF B1<0 OR B1>7 THEN GOTO 15590
  496. 15630 BGR=B1
  497. 15640 GOTO 14200
  498. 15650 LOCATE 25,5:PRINT"Enter the border color (a value between 0 and 7)";
  499. 15660 LINE INPUT;HJ$
  500. 15670 B1=VAL(HJ$)
  501. 15680 IF B1<0 OR B1>7 THEN GOTO 15650
  502. 15690 BDR=B1
  503. 15700 GOTO 14200
  504. 15710 LOCATE 24,5:PRINT"Modem speaker default? (ON or OFF) ";
  505. 15720 LINE INPUT;HJ$
  506. 15730 IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 15710
  507. 15740 GOSUB 50654
  508. 15750 IF HJ$="ON" THEN GOTO 15780
  509. 15760 IF HJ$="OFF" THEN GOTO 15780
  510. 15770 GOTO 15710
  511. 15780 M14$=HJ$
  512. 15790 GOTO 14200
  513. 15800 XX$="Remind users of the messages they left? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15820,15820,15800,15800
  514. 15820 M16$=HJ$:GOTO 14200
  515. 15840 XX$="Are system bulletins to be optional? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15860,15860,15840,15840
  516. 15860 M15$=HJ$:GOTO 14200
  517. 15880 XX$="Is non-ascii protocol required for binary files? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15900,15900,15880,15880
  518. 15900 M17$=HJ$:GOTO 14200
  519. 15911 XX$="Enable MICROCOM's MNP protocol? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15913,15913,15911,15911
  520. 15913 M29$=HJ$:GOTO 14200
  521. 15920 XX$="Is "+DIR$+" omitted from the N)ew command? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15940,15940,15920,15920
  522. 15940 OB$=HJ$:GOTO 14200
  523. 15960 XX$="Is "+UF$+" omitted from the N)ew command? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15980,15980,15960,15960
  524. 15980 OC$=HJ$:GOTO 14200
  525. 15991 LOCATE 24,5:PRINT"Do you want EXTENDED logging to the 'callers' file (YES OR NO) ";:GOSUB 22380:ON AB GOTO 15992,15992,15991,15991
  526. 15992 M37$=HJ$:GOTO 15340
  527. 16000 LOCATE 24,5:PRINT"Is system 'welcome' interruptable (YES OR NO) ";
  528. 16010 GOSUB 22380:ON AB GOTO 16020,16020,16000,16000
  529. 16020 M18$=HJ$:GOTO 14200
  530. 16031 LOCATE 24,5:PRINT"Seconds users can be idle before being logged off";
  531. 16032 LINE INPUT;HJ$
  532. 16033 TY=VAL(HJ$)
  533. 16034 IF TY<1 OR TY>32400 THEN GOTO 16031
  534. 16035 GOTO 14200
  535. 16040 CLS:LOCATE 5,5:PRINT "Please selecte the type of PC which RBBS-PC will be running on:":LOCATE 7,10:PRINT "0.   IBM PC, IBM XT, or IBM AT":LOCATE 9,10:PRINT "1.   Compaq/Plus or compatable that uses interrupt 7F":LOCATE 11,10:PRINT "2.   IBM PCjr
  536. 16045 LOCATE 13,10:PRINT "3.   Other compatable under IBM's DOS (i.e. PC-DOS)
  537. 16050 GOSUB 50340:LOCATE 24,5:PRINT "Select environment (0 to 3, CR to end)";:LINE INPUT;X$:IF X$="" THEN GOTO 14200 ELSE CM=VAL(X$):GOSUB 16060:IF CM=2 THEN GOTO 16071 ELSE GOTO 14200
  538. 16060 IF CM<0 OR CM>3 GOTO 16050
  539. 16062 IF CM=0 THEN M27$="IBM PC, XT, or AT
  540. 16064 IF CM=1 THEN M27$="Compaq/Plus
  541. 16066 IF CM=2 THEN M27$="PCjr
  542. 16068 IF CM=3 THEN M27$="Other under PC-DOS
  543. 16070 RETURN
  544. 16071 PCJR=0:XX$="Is an IBM PCjr Internal Modem installed? (YES or NO)":GOSUB 50345:GOSUB 22380:ON AB GOTO 16072,14200,16071,16071
  545. 16072 PCJR=1:GOTO 14200
  546. 16121 LOCATE 24,5:PRINT"Wait to issue modem commands between rings? (YES OR NO) ";
  547. 16122 GOSUB 22380:ON AB GOTO 16123,16123,16121,16121
  548. 16123 M28$=HJ$:GOTO 14200
  549. 16124 LOCATE 25,5:PRINT"Enter baud rate (300, 1200, 2400, 4800, 9600) to open modem at ";
  550. 16125 LINE INPUT;HJ$
  551. 16126 B1=VAL(HJ$)
  552. 16127 IF B1=300 OR B1=1200 OR B1=2400 OR B1=4800 OR B1=9600 THEN GOTO 16128 ELSE GOTO 16124
  553. 16128 B$=MID$(STR$(B1),2)
  554. 16129 GOTO 14200
  555. 16130 CN=5
  556. 16140 GOSUB 24800
  557. 16150 LOCATE  3,10:PRINT"81. Is the 'door' subystem available? ------------ "+M21$
  558. 16160 LOCATE  4,10:PRINT"82. The 'door' subsystem menu is named ----------- "+MK$
  559. 16170 LOCATE  5,10:PRINT"83. File RBBS builds dynamically to open a 'door'- "+CI$
  560. 16180 LOCATE  6,10:PRINT"84. When a 'door' closes, file to re-invoke RBBS - "+RB$
  561. 16185 LOCATE  7,10:PRINT"85. Drive to look for COMMAND.COM on ------------- "+M38$
  562. 16190 GOSUB 24890
  563. 16200 GOSUB 22160
  564. 16210 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,15340,16910,16230
  565. 16220 GOTO 16200
  566. 16230 GOSUB 50340
  567. 16240 IF HJ$="81" THEN GOTO 16290
  568. 16250 IF HJ$="82" THEN GOSUB 17330: MK$=SJ$+":"+HJ$:GOTO 16130
  569. 16260 IF HJ$="83" THEN GOSUB 17330: CI$=SJ$+":"+HJ$:GOTO 16130
  570. 16270 IF HJ$="84" THEN GOSUB 17330: RB$=SJ$+":"+HJ$:GOTO 16130
  571. 16275 IF HJ$="85" THEN A$="COMMAND.COM":GOSUB 13400:M38$=HJ$+":":GOTO 16130
  572. 16280 GOTO 16190
  573. 16290 XX$="Is the window subsystem available? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 16310,16310,16290,16290
  574. 16310 M21$=HJ$
  575. 16320 IF M21$="NO" GOTO 16130 ELSE GOSUB 50340:LOCATE 24,1:PRINT "Will you be running RBBS-PC under MultiLink from The Software Link? ";
  576. 16330 GOSUB 22380:ON AB GOTO  16340,16350,16290,16290
  577. 16340 IA!=FNTI!+15:GOSUB 16470:GOTO 16130
  578. 16350 GOSUB 16380:GOTO 16360
  579. 16360 LOCATE 23,1:PRINT"Current Multi-Link terminal type for WINDOWS is ";MN
  580. 16370 GOSUB 50340:LOCATE 24,1:PRINT "Enter Multi-Link terminal type for WINDOWS ";:GOSUB 17420:MN=B1:IF MN <1 THEN 16370 ELSE IF MN >12 THEN GOTO 16370 ELSE GOTO 16130
  581. 16380 CLS:PRINT "Multi-Link is a software product of The Software Link, Inc.":PRINT"located at 6700 23-B Roswell Road, Atlanta, Georgia  30328.":PRINT "It allows IBM's DOS 1.1 or 2.0 or the IBM PC to be a multi-tasking
  582. 16400 PRINT "operating system.  The Capital PC User Group has no connection
  583. 16410 PRINT "whatsoever with this company or it's products.  In fact The Software":PRINT"Link has only occasionally sent updates of it's new releases to us.":PRINT"That is the reason that RBBS-PC is only supported under Release 3.02 of
  584. 16420 PRINT"Multi-Link.  I feel strongly that IBM's DOS for the PC should be":PRINT"multi-tasking.  Because Multi-Link provides this capability for the widest
  585. 16430 PRINT"ranges of DOS software for the IBM PC, RBBS-PC has been enhanced":PRINT "to run under Multi-Link.  Any questions regarding RBBS-PC under Multi-Link":PRINT"(other than Release 3.02 of Multi-Link) should be directed to The
  586. 16440 PRINT"Software Link's customer support group at (404) 998-0788.":PRINT"":PRINT"I have run RBBS-PC under Multi-Link since December 1983 -- since Multi-Link":PRINT"release 2.04.  Since Multi-Link release 2.06 I HAVE NEVER HAD A SYSTEM CRASH
  587. 16450 PRINT"due to Multi-Link.  I think it is a quality product but a bit over-priced.":PRINT "My opnion on Multi-Link's price reflects my prejudice that all PC software":PRINT"should be relatively inexpensive.":PRINT"":PRINT SPC(60);"Tom Mack
  588. 16460 PRINT SPC(60);"July 1, 1984":RETURN
  589. 16470 CLS:PRINT"                ******Warning******":PRINT"IBM's DOS absolutely REQUIRES any software package running":PRINT"as a 'door' (i.e. via a communication port) to monitor the":PRINT"communication port!  Unless the software that you invoke via
  590. 16480 PRINT"the RBBS-PC 'door' mechanism monitors the communication line,":PRINT"your system will be vulnerable to being hung -- and worse!!!":PRINT"If you don't THROUGHLY understand section 11.0 of RBBS-PC's
  591. 16490 PRINT"documentation which discusses the pitfalls of opening RBBS-PC's":PRINT"'doors' to your users, DON'T use 'doors'!!!!!
  592. 16640 IF FNTI!<IA! THEN 16640 ELSE RETURN
  593. 16650 XX$="Limit the maximum time a users can be on each day? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 16670,16670,16650,16650
  594. 16670 M26$=HJ$:GOTO 12360
  595. 16690 XX$="Remind users of # uploads and downloads? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 16710,16710,16690,16690
  596. 16710 M19$=HJ$:GOTO 14200
  597. 16722 XX$="Remind users of their terminal's profile? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 16724,16724,16722,16722
  598. 16724 M20$=HJ$:GOTO 14200
  599. 16725 XX$="Are you using a non-Hayes auto-answer only modem? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 16726,16726,16725,16725
  600. 16726 M39$=HJ$:GOTO 14200
  601. 16730 LOCATE 24,5:PRINT"Default user page length?(a value between 0 and 255)";
  602. 16740 LINE INPUT;HJ$
  603. 16750 B1=VAL(HJ$)
  604. 16760 IF B1<0 OR B1>255 THEN GOTO 16730
  605. 16770 PL=B1
  606. 16780 GOTO 14200
  607. 16790 LOCATE 24,5:PRINT"Maximum number of lines allowed per message (1->30)";
  608. 16800 LINE INPUT;HJ$
  609. 16810 B1=VAL(HJ$)
  610. 16820 IF B1<1 OR B1>30 THEN GOTO 16790
  611. 16830 LW=B1
  612. 16840 GOTO 14200
  613. 16850 LOCATE 24,5:PRINT"Security level temporarily imposed on conference 'viewers'";
  614. 16860 HJ$="V>iew
  615. 16870 GOSUB 17420:VA=B1
  616. 16900 GOTO 16910
  617. 16910 CN=6
  618. 16920 GOSUB 24800
  619. 16930 LOCATE  3,9:PRINT"101. Minimum security level to get onto RBBS ------ "STR$(ML)
  620. 16940 LOCATE  4,9:PRINT"102. Default security level for new callers ------- "STR$(DB)
  621. 16950 LOCATE  5,9:PRINT"103. Security level for SYSOP --------------------- "STR$(SB)
  622. 16960 LOCATE  6,9:PRINT"104. Files with download security are listed in ---  "+FB$
  623. 16970 LOCATE  7,9:PRINT"105. Minimum security level to see SYSOP's menu --- "STR$(SC)
  624. 16980 LOCATE  8,9:PRINT"106. Minimum security level to use RBBS-PC 'doors'  "+STR$(SD)
  625. 16990 LOCATE  9,9:PRINT"107. Max # security violations before disconnect -- "STR$(ND)
  626. 17000 M22$=STR$(SF):IX=SA(1):FOR I=2 TO 7:IF IX<>SA(I) THEN M22$="(Variable)":GOTO 17010 ELSE NEXT
  627. 17010 LOCATE 10,9:PRINT"108. Security level for SYSOP functions ----------- "M22$
  628. 17020 M23$=STR$(MM):IX=MD(1):FOR I=2 TO 21:IF IX<>MD(I) THEN M23$="(Variable)":GOTO 17030 ELSE NEXT
  629. 17030 LOCATE 11,9:PRINT"109. Security level for main menu functions ------- "M23$
  630. 17040 M24$=STR$(FC):IX=FS(1):FOR I=2 TO 10:IF IX<>FS(I) THEN M24$="(Variable)":GOTO 17050 ELSE NEXT
  631. 17050 LOCATE 12,9:PRINT"110. Security level for file menu functions ------- "M24$
  632. 17060 M25$=STR$(UE):IX=UA(1):FOR I=2 TO 16:IF IX<>UA(I) THEN M25$="(Variable)":GOTO 17070 ELSE NEXT
  633. 17070 LOCATE 13,9:PRINT"111. Security level for utilities menu functions -- "M25$
  634. 17080 LOCATE 14,9:PRINT"112. File with privileged group passwords is named-  "PD$
  635. 17090 LOCATE 15,9:PRINT"113. Max # of password changes in a session ------- "STR$(CG)
  636. 17100 LOCATE 16,9:PRINT"114. Min. security level for temp. password changes "STR$(CH)
  637. 17110 LOCATE 17,9:PRINT"115. Min. security level to overwrite on uploads -- "STR$(WC)
  638. 17115 LOCATE 18,9:PRINT"116. Security level of conference 'viewers' ------- "STR$(VA)
  639. 17116 LOCATE 19,9:PRINT"117. User's security exempted from 'packing' ------ "STR$(PC)
  640. 17120 GOSUB 24890
  641. 17130 GOSUB 22160
  642. 17140 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,16130,21550,17160
  643. 17150 GOTO 17130
  644. 17160 GOSUB 50340
  645. 17170 IF HJ$="101" THEN GOSUB 18730:GOSUB 17410:ML=B1:GOTO 16910
  646. 17180 IF HJ$="102" THEN GOSUB 18730:GOSUB 17410:DB=B1:GOTO 16910
  647. 17190 IF HJ$="103" THEN GOSUB 18730:GOSUB 17410:SB=B1:GOTO 16910
  648. 17200 IF HJ$="104" THEN GOSUB 17330:FB$=SJ$+":"+HJ$:GOTO 16910
  649. 17210 IF HJ$="105" THEN GOSUB 18730:GOSUB 17410:SC=B1:GOTO 16910
  650. 17220 IF HJ$="106" THEN GOSUB 18730:GOSUB 17410:SD=B1:GOTO 16910
  651. 17230 IF HJ$="107" THEN GOSUB 18730:GOSUB 17410:ND=B1:GOTO 16910
  652. 17240 IF HJ$="108" THEN GOTO 17460
  653. 17250 IF HJ$="109" THEN GOSUB 17460:MM=B1:GOTO 16910
  654. 17260 IF HJ$="110" THEN GOSUB 17460:FC=B1:GOTO 16910
  655. 17270 IF HJ$="111" THEN GOSUB 17460:UE=B1:GOTO 16910
  656. 17280 IF HJ$="112" THEN GOSUB 17330:PD$=SJ$+":"+HJ$:GOTO 16910
  657. 17290 IF HJ$="113" THEN GOSUB 50340:LOCATE 24,1:PRINT "Maximum number of password changes is? (0 or more)";:GOSUB 17420:CG=B1:IF B1<0 THEN 17290 ELSE 16910
  658. 17300 IF HJ$="114" THEN GOSUB 18730:GOSUB 17410:CH=B1:GOTO 16910
  659. 17310 IF HJ$="115" THEN HJ$="overwriting files on upload":GOSUB 17410:WC=B1:GOTO 16910
  660. 17315 IF HJ$="116" THEN GOTO 16850
  661. 17316 IF HJ$="117" THEN GOSUB 18730:GOSUB 17410:PC=B1:GOTO 16910
  662. 17320 GOTO 17120
  663. 17330 X$=HJ$:LOCATE 24,5:PRINT"Specify drive (A->"+M$+") where file for option "+X$+" will be located. ";
  664. 17340 LINE INPUT;HJ$
  665. 17350 IF LEN(HJ$)<>1 THEN HJ$=X$:GOTO 17330
  666. 17360 GOSUB 50654
  667. 17370 IF HJ$<"A" OR HJ$>M$ THEN HJ$=X$:GOTO 17330
  668. 17380 SJ$=HJ$
  669. 17390 GOSUB 14980
  670. 17400 RETURN
  671. 17410 GOSUB 50340:LOCATE 24,1:PRINT "Security level for "+HJ$+" is? ";
  672. 17420 LINE INPUT;HK$
  673. 17430 B1=VAL(HK$)
  674. 17440 IF B1=0 AND HK$<>"0" THEN 17410
  675. 17450 RETURN
  676. 17460 IF HJ$="108" THEN CO$="SYSOP":GOTO 18480
  677. 17470 IF HJ$="109" THEN CO$="Main Menu":GOTO 18100
  678. 17480 IF HJ$="110" THEN CO$="File System":GOTO 17820
  679. 17490 IF HJ$="111" THEN CO$="Utilities
  680. 17500 LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  681. 17510 LINE INPUT;X$
  682. 17520 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 17500
  683. 17530 SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  684. 17540 IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 16:UA(I)=B1:NEXT:UE=B1:GOTO 16910
  685. 17550 IF X$="NO" OR X$="N" THEN GOTO 17570
  686. 17560 GOTO 17500
  687. 17570 GOSUB 25180:LOCATE 5,10:PRINT"B)aud rate                     "+STR$(UA(1)):LOCATE 6,10:PRINT"C)ase change                   "+STR$(UA(2)):LOCATE 7,10:PRINT"F)ile transfer protocol        "+STR$(UA(3))
  688. 17610 LOCATE 8,10:PRINT"G)raphics                      "+STR$(UA(4)):LOCATE 9,10:PRINT"H)elp                          "+STR$(UA(5)):LOCATE 10,10:PRINT"L)ine feeds                    "+STR$(UA(6))
  689. 17640 LOCATE 11,10:PRINT"M)sg margin                    "+STR$(UA(7)):LOCATE 12,10:PRINT"N)ulls                         "+STR$(UA(8)):LOCATE 13,10:PRINT"P)ass word                     "+STR$(UA(9))
  690. 17670 LOCATE 14,10:PRINT"Q)uit to main menu             "+STR$(UA(10)):LOCATE 15,10:PRINT"R)eview Default                "+STR$(UA(11)):LOCATE 16,10:PRINT"S)tatistics                    "+STR$(UA(12))
  691. 17690 LOCATE 17,10:PRINT"T)ime                          "+STR$(UA(13)):LOCATE 18,10:PRINT"U)serlog                       "+STR$(UA(14)):LOCATE 19,10:PRINT"X)Expert on/off                "+STR$(UA(15))
  692. 17710 LOCATE 20,10:PRINT"!)Prompt sound                 "+STR$(UA(16))
  693. 17720 GOSUB 25210:SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$:FF=INSTR("BCFGHLMNPQRSTUX!",X$):IF FF=0 THEN 17720
  694. 17790 HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  695. 17800 UA(FF)=B1
  696. 17810 GOTO 17570
  697. 17820 LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  698. 17830 LINE INPUT;X$
  699. 17840 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 17820
  700. 17850 SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  701. 17860 IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 10:FS(I)=B1:NEXT:FC=B1:GOTO 16910
  702. 17870 IF X$="NO" OR X$="N" THEN GOTO 17890
  703. 17880 GOTO 17820
  704. 17890 GOSUB 25180:LOCATE 5,10:PRINT"D)ownload a file               "+STR$(FS(1)):LOCATE 6,10:PRINT"G)oodbye                       "+STR$(FS(2)):LOCATE 7,10:PRINT"H)elp                          "+STR$(FS(3))
  705. 17950 LOCATE 8,10:PRINT"L)ist files                    "+STR$(FS(4)):LOCATE 9,10:PRINT"N)ew files                     "+STR$(FS(5)):LOCATE 10,10:PRINT"Q)uit to main menu             "+STR$(FS(6))
  706. 17975 LOCATE 11,10:PRINT"S)earch directories for string "+STR$(FS(7)):LOCATE 12,10:PRINT"U)pload a file                 "+STR$(FS(8)):LOCATE 13,10:PRINT"X)Expert on/off                "+STR$(FS(9))
  707. 17990 LOCATE 14,10:PRINT"?) Xfer info                   "+STR$(FS(10))
  708. 18000 GOSUB 25210:SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$:FF=INSTR("DGHLNQSUX?",X$):IF FF=0 THEN 18000
  709. 18070 HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  710. 18080 FS(FF)=B1
  711. 18090 GOTO 17890
  712. 18100 LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  713. 18110 LINE INPUT;X$
  714. 18120 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 18100
  715. 18130 SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  716. 18140 IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 21:MD(I)=B1:NEXT:MM=B1:GOTO 16910
  717. 18150 IF X$="NO" OR X$="N" THEN GOTO 18170
  718. 18160 GOTO 18100
  719. 18170 GOSUB 25180:LOCATE 3,8:PRINT"Command     Security Level":LOCATE 3,37:PRINT"   Command        Security Level":LOCATE 5,5:PRINT"B)ulletins            "+STR$(MD(1)):LOCATE 6,5:PRINT"C)omments             "+STR$(MD(2))
  720. 18220 LOCATE 7,5:PRINT"D)oor subystem        "+STR$(MD(3)):LOCATE 8,5:PRINT"E)nter message        "+STR$(MD(4)):LOCATE 9,5:PRINT"F)iles system         "+STR$(MD(5)):LOCATE 10,5:PRINT"G)oodbye              "+STR$(MD(6))
  721. 18260 LOCATE 11,5:PRINT"H)elp                 "+STR$(MD(7)):LOCATE 12,5:PRINT"I)nitial welcome      "+STR$(MD(8)):LOCATE 13,5:PRINT"J)oin a conference    "+STR$(MD(9)):LOCATE 14,5:PRINT"K)ill messages        "+STR$(MD(10))
  722. 18290 LOCATE 15,5:PRINT"L)ines per page       "+STR$(MD(11)):LOCATE 5,40:PRINT"O)perator             "+STR$(MD(12)):LOCATE 6,40:PRINT"P)ersonal mail        "+STR$(MD(13)):LOCATE 7,40:PRINT"Q)uick scan           "+STR$(MD(14))
  723. 18330 LOCATE 8,40:PRINT"R)ead messages        "+STR$(MD(15)):LOCATE 9,40:PRINT"S)can messages        "+STR$(MD(16)):LOCATE 10,40:PRINT"U)tilities (more)     "+STR$(MD(17)):LOCATE 11,40:PRINT"V)iew a conference    "+STR$(MD(18))
  724. 18357 LOCATE 12,40:PRINT"W)ho's on other nodes "+STR$(MD(19)):LOCATE 13,40:PRINT"X)Expert on/off       "+STR$(MD(20)):LOCATE 14,40:PRINT"?)Functions           "+STR$(MD(21))
  725. 18380 GOSUB 25210:SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$:FF=INSTR("BCDEFGHIJKLOPQRSUVWX?",X$):IF FF=0 THEN 18380
  726. 18450 HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  727. 18460 MD(FF)=B1
  728. 18470 GOTO 18170
  729. 18480 LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  730. 18490 LINE INPUT;X$
  731. 18500 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 18480
  732. 18510 SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  733. 18520 IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 7:SA(I)=B1:NEXT:SF=B1:GOTO 16910
  734. 18530 IF X$="NO" OR X$="N" THEN GOTO 18550
  735. 18540 GOTO 18480
  736. 18550 GOSUB 25180:LOCATE 5,10:PRINT" 1 List comments               "+STR$(SA(1)):LOCATE 6,10:PRINT" 2 List callers log            "+STR$(SA(2)):LOCATE 7,10:PRINT" 3 Recover a Msg               "+STR$(SA(3))
  737. 18610 LOCATE 8,10:PRINT" 4 Erase comments              "+STR$(SA(4)):LOCATE 9,10:PRINT" 5 Users maintenance           "+STR$(SA(5)):LOCATE 10,10:PRINT" 6 Toggle page bell            "+STR$(SA(6))
  738. 18650 LOCATE 11,10:PRINT" 7 Exit to DOS 2               "+STR$(SA(7))
  739. 18670 GOSUB 25210:IF VAL(X$)<1 OR VAL(X$)>7 THEN 18670
  740. 18700 HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  741. 18710 SA(VAL(X$))=B1
  742. 18720 GOTO 18550
  743. 18730 HJ$="option "+HJ$:RETURN
  744. 18740 GOSUB 50340:IF M5$="NOVICE" THEN XPR=0
  745. 18750 IF M5$="EXPERT" THEN XPR=-1
  746. 18760 FD$=M7$+M6$
  747. 18770 BE=-1:IF M10$="OFF" THEN BE=0
  748. 18772 MW$=". ":IF M11$="YES" THEN MW$=". "+CHR$(7)
  749. 18774 CL=FA:IF M12$="COMPILED" THEN CL=TA
  750. 18776 MID$(SG$,4,1)="1":IF M14$="OFF" THEN MID$(SG$,4,1)="0"
  751. 18778 OD=FA:IF M15$="YES" THEN OD=TA
  752. 18780 RC=FA:IF M16$="YES" THEN RC=TA
  753. 18782 BF=FA:IF M17$="YES" THEN BF=TA
  754. 18784 OA=FA:IF M18$="YES" THEN OA=TA
  755. 18786 UD=FA:IF M19$="YES" THEN UD=TA
  756. 18788 CK=FA:IF M20$="YES" THEN CK=TA
  757. 18790 WB=FA:IF M21$="YES" THEN WB=TA
  758. 18792 M26=FA:IF M26$="YES" THEN M26=TA
  759. 18794 M28=FA:IF M28$="YES" THEN M28=TA
  760. 18796 M29=FA:IF M29$="YES" THEN M29=TA
  761. 18799 M30=FA:IF M30$="YES" THEN M30=TA
  762. 18801 M31=FA:IF M31$="YES" THEN M31=TA
  763. 18803 M32=FA:IF M32$="YES" THEN M32=TA
  764. 18805 M34=FA:IF M34$="YES" THEN M34=TA
  765. 18807 M35=FA:IF M35$="YES" THEN M35=TA
  766. 18809 M36=FA:IF M36$="YES" THEN M36=TA
  767. 18811 M37=FA:IF M37$="YES" THEN M37=TA
  768. 18813 M39=FA:IF M39$="YES" THEN M39=TA
  769. 18989 IF ME$<>MAINMSG$ THEN ME$=MAINMSG$
  770. 18990 IF UC$<>MAINUSR$ THEN UC$=MAINUSR$
  771. 18998 IF F THEN GOSUB 30040
  772. 18999 OPEN "O",#1,CA$
  773. 19010 IF INSTR(MO$,":")<1 THEN MO$=MO$+":
  774. 19020 IF INSTR(SJ$,":")<1 THEN SJ$=SJ$+":
  775. 19030 IF INSTR(TB$,":")<1 THEN TB$=TB$+":
  776. 19031 IF INSTR(BD$,":")<1 THEN BD$=BD$+":
  777. 19032 T$=DIR$:IF INSTR(DIR$,".") THEN T$=MID$(DIR$,INSTR(DIR$,".")+1,LEN(DIR$))
  778. 19033 S$=UF$:IF INSTR(UF$,".") THEN S$=MID$(UF$,1,INSTR(UF$,".")-1)
  779. 19034 DIR$=T$
  780. 19035 UF$=S$
  781. 19036 IF M32$="NO" THEN DNLD.SUB=0:FOR I=1 TO 99:DNLD$(I)="":NEXT
  782. 19037 IF M31$="NO" THEN M33$=M6$+":"
  783. 19038 IF M31$="YES" AND M33$<>"" THEN M6$=M33$
  784. 19040 WRITE #1,FD$,PA$,PB$,NB$,NC$,CE,AC,AD,TC!,MP,LA,UF$,XPR,BG,BE,PCJR,CL,MG$,MH$,MI$,MJ$,MK$,CD$,VA,OA,UD,PL,LW,WB,MO$
  785. 19050 IF INSTR(BA$,":")<1 THEN BA$=BD$+BA$
  786. 19060 IF INSTR(BB$,":")<1 THEN BB$=BD$+BB$
  787. 19070 FOR I=1 TO 9
  788. 19080 HA$(I)=HB$+":"+HA$+RIGHT$(STR$(I),1)
  789. 19090 NEXT
  790. 19100 MD(6)=ML:FS(2)=ML
  791. 19110 WRITE #1,ME$,MF$,CB$,CC$,UC$,WA$,NA$,DIR$,M13$,OD,SG$,TB$,DA,FGR,BGR,BDR,RB$,CI$
  792. 19120 WRITE #1,OB$,OC$,HA$(1),HA$(2),HA$(3),HA$(4),HA$(5),HA$(6),HA$(7),HA$(8),HA$(9),BA$,BB$,BD$,RC,BF,SD,MC,SE,CF,UB,MQ!,BC$
  793. 19130 WRITE #1,ML,DB,SB,FB$,SC,KA$,ND,SA(1),SA(2),SA(3),SA(4),SA(5),SA(6),SA(7),PD$,CG,CH,WC,MN,M26
  794. 19140 WRITE #1,MD(1),MD(2),MD(3),MD(4),MD(5),MD(6),MD(7),MD(8),MD(9),MD(10),MD(11),MD(12),MD(13),MD(14),MD(15),MD(16),MD(17),MD(18),MD(19),MD(20),MD(21),SY$,TY
  795. 19150 WRITE #1,FS(1),FS(2),FS(3),FS(4),FS(5),FS(6),FS(7),FS(8),FS(9),FS(10),UA(1),UA(2),UA(3),UA(4),UA(5),UA(6),UA(7),UA(8),UA(9),UA(10),UA(11),UA(12),UA(13),UA(14),UA(15),UA(16),UPX!,CM,CK,FF$,M28,M29,MW$,B$
  796. 19159 IF M13$="COM1" THEN LSB=&H3F8:MSB=&H3F9:LCR=&H3FB:MCR=&H3FC:LSR=&H3FD:MSR=&H3FE
  797. 19160 IF M13$="COM2" OR PCJR=1 THEN LSB=&H2F8:MSB=&H2F9:LCR=&H2FB:MCR=&H2FC:LSR=&H2FD:MSR=&H2FE
  798. 19161 WRITE #1,SM1$,SM2$,SM3$,SM4$,SM5$,SM6$,SM7$,SM8$,SM9$,SH$,SI$,PC
  799. 19162 WRITE #1,DNLD.SUB,M30,M31,M32,M33$,M34,M35,M36,M37,M1$,M2$,M3$,M4$,M38$,M39,LSB,MSB,LCR,MCR,LSR,MSR
  800. 19165 IF DNLD.SUB<1 OR DNLD.SUB>99 THEN GOTO 19170 ELSE FOR I=1 TO DNLD.SUB:WRITE #1,DNLD$(I):NEXT
  801. 19170 CLOSE #1
  802. 19175 CLS:LOCATE 12,1,1:PRINT "RBBS-PC configuration description file, "+CA$+", now on default drive.":GOSUB 60380
  803. 19179 GOTO 60340
  804. 21550 CN=7
  805. 21560 GOSUB 30040
  806. 21565 UB=IG:MQ!=IH:MP=IM
  807. 21570 GOSUB 24800
  808. 21580 LOCATE  3,9:PRINT"121. Maximum number of concurrent RBBS-PC's  -------"STR$(MC)
  809. 21590 IF MC=1 THEN MT$="single RBBS-PC copy " ELSE MT$="concurrent RBBS-PC's":GOSUB 21900:IF SE<0 OR SE>4 THEN GOTO 21810
  810. 21600 LOCATE  4,9:PRINT"122. Environment running "+MT$+" ------ "+EA$
  811. 21610 LOCATE  5,9:PRINT"123. RBBS-PC 'recycle' method when users log off --- "+RA$
  812. 21615 FILE$=ME$:GOSUB 30180:MQ!=UG
  813. 21620 LOCATE  6,9:PRINT"124. Number of records in the "+UC$+" file ";STRING$(16-LEN(UC$),"-");STR$(UB)
  814. 21630 LOCATE  7,9:PRINT"125. Number of records in "+ME$+" file ";STRING$(20-LEN(ME$),"-");STR$(MQ!)
  815. 21635 LOCATE  8,9:PRINT"126. Maximum number of messages allowed ------------"STR$(MP)
  816. 21636 LOCATE  9,9:PRINT"127. Conference File Maintenance.
  817. 21640 GOSUB 24890
  818. 21650 GOSUB 22160
  819. 21660 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,16910,23000,21680
  820. 21670 GOTO 21650
  821. 21680 GOSUB 50340
  822. 21690 IF HJ$="121" THEN GOTO 21750
  823. 21700 IF HJ$="122" THEN GOTO 21810
  824. 21710 IF HJ$="123" THEN GOTO 21950
  825. 21720 IF HJ$="125" THEN GOSUB 22040:GOTO 21550
  826. 21730 IF HJ$="124" THEN IF F=2 THEN GOSUB 22560:GOTO 21550 ELSE GOSUB 22100:GOTO 21550
  827. 21735 IF HJ$="126" THEN GOTO 13890
  828. 21736 IF HJ$="127" THEN GOTO 25040
  829. 21740 GOTO 21640
  830. 21750 GOSUB 50340:LOCATE 24,5:PRINT"Maximum number of conurrent RBBS-PC's? (a value between 1 and 36)";
  831. 21760 LINE INPUT;HJ$
  832. 21770 B1=VAL(HJ$)
  833. 21780 IF B1<1 OR B1>36 THEN GOTO 21750
  834. 21790 IF MC=B1 THEN GOTO 21550
  835. 21795 B3!=MQ!:GOSUB 30610
  836. 21800 GOTO 21550
  837. 21810 CLS:LOCATE 3,5:PRINT"RBBS-PC is supported in the following:":LOCATE 5,20:PRINT"Environment":LOCATE 7,10:PRINT"0. Single RBBS-PC in an IBM DOS environment":LOCATE 9,10:PRINT"1. MultiLink (multi-tasking under single DOS)
  838. 21840 LOCATE 11,10:PRINT"2. Omninet (CORVUS)":LOCATE 13,10:PRINT"3. PC-NET (Orchid)":LOCATE 15,10:PRINT"4. Top-View (IBM's multi-tasking for DOS 3.1) -- not yet supported
  839. 21870 GOSUB 50340:LOCATE 24,5:PRINT"Select environment (0 to 4, CR to end)";:LINE INPUT;X$:IF X$=""THEN 21550 ELSE SE=VAL(X$):GOSUB 21890:GOTO 21550
  840. 21890 IF SE<0 OR SE>4 GOTO 21870
  841. 21895 IF SE=0 THEN EA$="IBM's DOS
  842. 21900 IF SE=1 THEN EA$="MultiLink
  843. 21910 IF SE=2 THEN EA$="Omninet
  844. 21920 IF SE=3 THEN EA$="PC-NET
  845. 21930 IF SE=4 THEN EA$="Top-View -- future
  846. 21940 RETURN
  847. 21950 GOSUB 50340:LOCATE 24,5:PRINT"How RBBS-PC recycles when users logs off (SYSTEM or INTERNAL)? ";
  848. 21960 LINE INPUT;HJ$
  849. 21970 IF LEN(HJ$)<1 OR LEN(HJ$)>8 THEN GOTO 21950
  850. 21980 GOSUB 50654
  851. 21990 IF HJ$="SYSTEM" THEN CF=1:GOTO 22020
  852. 22000 IF HJ$="INTERNAL" THEN CF=0:GOTO 22020
  853. 22010 GOTO 21950
  854. 22020 RA$=HJ$
  855. 22030 GOTO 21550
  856. 22040 GOSUB 50340:LOCATE 24,5:PRINT"Max. records in preformatted "+ME$+" file (>"+STR$(5*MP+1+MC)+"):";
  857. 22050 LINE INPUT;HJ$
  858. 22060 B3!=VAL(HJ$)
  859. 22070 IF B3!<=(5*MP+1+MC) OR B3!>9999999! THEN GOTO 22040
  860. 22080 B1=MC:GOSUB 30610:MQ!=B3!
  861. 22090 RETURN
  862. 22100 GOSUB 50340:LOCATE 24,5:FF=IE:IF FF>1 THEN FF=FF-1
  863. 22105 GOSUB 50340:LOCATE 24,5:PRINT STR$(FF)+" of"+STR$(IG)+" records used. Enter new maximum number of records for "+UC$+":";
  864. 22110 LINE INPUT;HJ$
  865. 22120 B1=VAL(HJ$)
  866. 22130 IF B1<1 OR B1>99999! OR B1<FF THEN GOTO 22100
  867. 22140 B2=2:WHILE B2<B1:B2=B2*2:WEND:IF UB=B2 THEN RETURN
  868. 22142 XX$="Change "+UC$+" file to"+STR$(B2)+" records? (YES or NO)":GOSUB 50345:GOSUB 22380:ON AB GOTO 22100,22150,22100,22100
  869. 22150 UB=B2:D.FLAG=-1:GOSUB 24110:IB=1:UB=B2:IG=B2:GOSUB 30450:GOSUB 50340:RETURN
  870. 22160 I!=FRE(C$):Y$=INKEY$
  871. 22170 IX=0
  872. 22180 IF LEN(Y$)<1 THEN GOTO 22160
  873. 22190 IF LEN(Y$)=2 THEN GOTO 22240
  874. 22200 IF ASC(Y$)=13 THEN IX=13:RETURN
  875. 22205 IF ASC(Y$)=8 AND LEN(HJ$)>0 THEN HJ$=LEFT$(HJ$,LEN(HJ$)-1):PRINT CHR$(29)+" "+CHR$(29);:GOTO 22160
  876. 22206 IF ASC(Y$)<48 OR ASC(Y$)>57 THEN 22160
  877. 22210 PRINT Y$;
  878. 22220 HJ$=HJ$+Y$:IF LEN(HJ$)>4 THEN IX=13
  879. 22230 RETURN
  880. 22240 IX=ASC(RIGHT$(Y$,1))
  881. 22250 Y$="
  882. 22260 IF IX<59 OR IX>81 THEN RETURN
  883. 22270 IX=IX-58
  884. 22280 IF IX<10 THEN RETURN
  885. 22290 IF IX=15 THEN IX=11:RETURN
  886. 22300 IF IX=21 THEN IX=10:RETURN
  887. 22310 IF IX=23 THEN IX=12:RETURN
  888. 22320 IX=0
  889. 22330 RETURN
  890. 22340 LOCATE 22,15:PRINT SPC(64);:LOCATE 22,15:PRINT TIME$;" ";:COLOR 0,7:PRINT " Reading Data, Wait a sec !!! ";:COLOR FGR,BGR,BDR:RETURN
  891. 22350 GOSUB 50340
  892. 22360 XX$="Are you satisfied with all changes ? (Y/N) or <Q)uit ":GOSUB 50345:GOSUB 22380:ON AB GOTO 12190,18740,60360,22350
  893. 22380 LINE INPUT;HJ$
  894. 22390 IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 22470
  895. 22400 GOSUB 50654
  896. 22410 IF HJ$="NO" THEN AB=1:RETURN
  897. 22420 IF HJ$="N" THEN HJ$="NO":AB=1:RETURN
  898. 22430 IF HJ$="YES" THEN AB=2:RETURN
  899. 22440 IF HJ$="Y" THEN HJ$="YES":AB=2:RETURN
  900. 22450 IF HJ$="QUIT" THEN AB=3:RETURN
  901. 22460 IF HJ$="Q" THEN AB=3:RETURN
  902. 22470 AB=4:RETURN
  903. 22480 GOSUB 50340:LOCATE 24,5:PRINT"To which copy of RBBS-PC will these options apply (1 to 36)?";
  904. 22490 LINE INPUT;HJ$
  905. 22500 IF LEN(HJ$)<1 OR LEN(HJ$)>2 THEN GOTO 22480
  906. 22510 IF VAL(HJ$)<1 OR VAL(HJ$)>36 THEN GOTO 22480
  907. 22520 MID$(CA$,5,1)=MID$("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ",VAL(HJ$),1)
  908. 22530 RETURN
  909. 22560 GOSUB 50340:LOCATE 24,5:PRINT "Option "+HJ$+" unavailable when maintaining a public conference!";
  910. 22570 IA!=FNTI!+5:GOSUB 60440:RETURN
  911. 23000 CN=8
  912. 23010 GOSUB 24800:RB=0
  913. 23020 LOCATE  3,9:PRINT"141. Pack "+ME$+" file.
  914. 23030 LOCATE  4,9:PRINT"142. Rebuild "+UC$+" file.
  915. 23040 LOCATE  5,9:PRINT"143. Print "+ME$+" 'header' records.
  916. 23050 LOCATE  6,9:PRINT"144. Renumber messages in "+ME$+" file.
  917. 23055 LOCATE  7,9:PRINT"145. Repair messages in "+ME$+" file.
  918. 23056 LOCATE  8,9:PRINT"146. Initialize Hayes 2400 firmware for RBBS-PC.
  919. 23060 A$="Enter number of utility function, END to terminate, PgUp/PgDn to scroll.":GOSUB 24900
  920. 23070 GOSUB 22160
  921. 23080 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,21550,25220,23100
  922. 23090 GOTO 23070
  923. 23100 GOSUB 50340
  924. 23110 IF HJ$="141" THEN GOTO 23160
  925. 23120 IF HJ$="142" THEN IF F=2 THEN GOSUB 22560:GOTO 23000 ELSE D.FLAG=0:GOSUB 24110:GOTO 23000
  926. 23130 IF HJ$="143" THEN SK=0:GOTO 23630
  927. 23140 IF HJ$="144" THEN GOTO 23740
  928. 23145 IF HJ$="145" THEN RB=1:SK=0:GOTO 23630
  929. 23146 IF HJ$="146" THEN GOSUB 23731:GOTO 23000
  930. 23150 GOTO 23060
  931. 23160 B1=MC:B3!=IH:PURGE=-1:GOSUB 30610:GOTO 23000
  932. 23610 I=LOC(1)+VAL(MID$(R$,118,6))
  933. 23620 RETURN
  934. 23630 GOSUB 30040              ' <----Print message headers
  935. 23640 OPEN "R",1,ME$
  936. 23650 FIELD 1,128 AS R$
  937. 23670 FOR I=IJ TO II-1
  938. 23680   GET 1,I
  939. 23684   IF VAL(MID$(R$,118,6))>0 AND SK<VAL(MID$(R$,2,4)) THEN SK=VAL(MID$(R$,2,4)):GOSUB 23610 ELSE GOTO 23725
  940. 23686   I$="K":IF MID$(R$,116,1)=CHR$(225) THEN I$="A
  941. 23715   IF LOC(1)>II-1 THEN GOTO 23730
  942. 23717   PRINT LEFT$(R$,5)+" "+MID$(R$,76,25)+" "+MID$(R$,101,15)+" "+I$+" "+MID$(R$,118,6)+" "+STR$(LOC(1))+" " +STR$(I):SK=VAL(MID$(R$,2,4))
  943. 23720   IF RB AND VAL(MID$(R$,2,4))=IO THEN GOTO 23730
  944. 23722   IF RB THEN GOSUB 50580
  945. 23725 NEXT
  946. 23730 GET 1,1:MID$(R$,1,8)=SPACE$(8):MID$(R$,1,8)=STR$(SK):PUT 1,1:CLOSE 1:IA!=FNTI!+5:GOSUB 60440:GOTO 23000
  947. 23731 LOCATE 25,5:PRINT "Setting Hayes 2400 firmware switches for RBBS-PC on "+M13$;:IA!=FNTI!+3:GOSUB 60440
  948. 23732 A$="AT&C1&D2B1E0V1M0S0="+MID$(STR$(VAL(MID$(SG$,24,3))),2,3):LOCATE 25,5:PRINT SPACE$(74);:LOCATE 25,5:PRINT "Prevent remote digitial loop back tests? ";:GOSUB 22380:ON AB GOTO 23734,23733,23732,23732
  949. 23733 A$=A$+"&T5"
  950. 23734 OPEN M13$+":2400,N,8,1,RS,CD,DS" AS #3: PRINT #3,"ATZ":IA!=FNTI!+3:GOSUB 60440:PRINT #3,A$+"&W":GOSUB 60440
  951. 23735 CLOSE #3:LOCATE 25,5:PRINT SPACE$(74);:LOCATE 25,5:PRINT "Hayes 2400 firmware switches are now set for RBBS-PC on "+M13$;:IA!=FNTI!+3:GOSUB 60440:RETURN
  952. 23740 GOSUB 30040
  953. 23750 GOSUB 50340:LOCATE 24,5:PRINT"Renumber starting with OLD message # (<"+STR$(IO+1)+")";
  954. 23760 LINE INPUT;HJ$
  955. 23770 IF HJ$="" THEN GOTO 23000
  956. 23780 B1=VAL(HJ$)
  957. 23790 IF B1<1 OR B1>IO THEN GOTO 23750
  958. 23800 RE=B1
  959. 23810 GOSUB 50340:LOCATE 24,5:PRINT"Renumber starting with NEW message # ";
  960. 23820 LINE INPUT;HJ$
  961. 23830 IF HJ$="" THEN GOTO 23000
  962. 23840 B1=VAL(HJ$)
  963. 23850 IF B1<1 OR B1>9999 THEN GOTO 23810
  964. 23860 NE=B1-1
  965. 23870 OPEN "R",1,ME$
  966. 23880 FIELD 1,128 AS R$
  967. 23890 GOSUB 50340
  968. 23910 FOR I = IJ TO II-1
  969. 23920   GET 1,I
  970. 23930   IF INSTR(R$,CHR$(225)) OR INSTR(R$,CHR$(226)) THEN GOSUB 24010:GOSUB 23610
  971. 23940 NEXT
  972. 23942 GET 1,1
  973. 23944 MID$(R$,1,8)=SPACE$(8) ' Update the checkpoint record with the
  974. 23946 MID$(R$,1,8)=STR$(NE)  ' 1- 8 = number of last message on system
  975. 23947 PUT 1,1
  976. 23950 CLOSE 1
  977. 23980 IA!=FNTI!+1
  978. 23990 GOSUB 60440
  979. 24000 GOTO 23000
  980. 24010 LOCATE 24,15
  981. 24020 PRINT "Msg #"+MID$(R$,1,5);
  982. 24030 IF VAL(MID$(R$,2,4))<RE THEN PRINT " read";:RETURN
  983. 24040 Y$=MID$(R$,1,1)
  984. 24045 MID$(R$,1,5)=SPACE$(5)
  985. 24046 NE=NE+1
  986. 24050 MID$(R$,1,5)=STR$(NE)
  987. 24060 MID$(R$,1,1)=Y$
  988. 24070 PRINT " renumbered as Msg #"+MID$(R$,1,5)
  989. 24090 PUT 1,I
  990. 24100 RETURN
  991. 24110 GOSUB 30040
  992. 24119 OPEN "R",1,UC$,128
  993. 24120 FIELD 1,31 AS O.N$,15 AS OG$,2 AS OH$,14 AS OI$,24 AS OJ$,19 AS OL$,14 AS OM$,3 AS OO$,2 AS OQ$,2 AS OS$,2 AS OT$
  994. 24130 GOSUB 50350:A$=F$:GOSUB 50095:OPEN "R",2,A$,128
  995. 24140 FIELD 2,31 AS N$,15 AS PW$,2 AS SL$,14 AS OP$,24 AS CS$,19 AS MA$,14 AS TD$,3 AS LND$,2 AS UDL$,2 AS UUL$,2 AS ET$
  996. 24150 NOW=VAL(LEFT$(DATE$,2))
  997. 24180 GOSUB 50340:A!=0:GOSUB 50840
  998. 24190 A!=IG:IE=1
  999. 24200 FOR J = 1 TO A!
  1000. 24210   GET 1
  1001. 24220   IF ASC(O.N$)=0 OR MID$(O.N$,1,7)="NEWUSER" OR MID$(O.N$,1,7)="       " OR MID$(O.N$,1,12)="deleted user" THEN A$="":GOTO 24430
  1002. 24225   IF D.FLAG THEN 24290
  1003. 24230   OF=CVI(OH$)
  1004. 24240   IF OF=>PC THEN 24290      ' copy users exempt from purges
  1005. 24250   IF OF<=ML THEN 24290      ' copy "locked-out" users
  1006. 24260   OU=VAL(LEFT$(OM$,2))
  1007. 24270   LQ=NOW-OU
  1008. 24280   IF LQ<0 THEN LQ=LQ+12
  1009. 24285   IF LQ>LA THEN A$="(Last on "+OM$+")":GOTO 24430 'Purge inactive users
  1010. 24290   PRINT STR$(LOC(1))+": "+O.N$+" copied .... ";
  1011. 24300   GOSUB 50720:GOTO 24450
  1012. 24430   PRINT STR$(LOC(1))+": "+O.N$+"        purged... "+A$
  1013. 24450 NEXT
  1014. 24650 CLOSE 1,2
  1015. 24660 UB=IG
  1016. 24670 GOSUB 30450
  1017. 24730 XX$="Delete the old "+UC$+" file? (YES or NO)?":GOSUB 50345:GOSUB 22380:ON AB GOTO 24750,24770,24730,24730
  1018. 24750 A$=UC$:GOSUB 50096:NAME UC$ AS A$
  1019. 24760 GOTO 24780
  1020. 24770 KILL UC$
  1021. 24780 GOSUB 50350:A$=F$:GOSUB 50095:NAME A$ AS UC$
  1022. 24790 RETURN
  1023. 24800 CLS
  1024. 24810 I!=FRE(C$)
  1025. 24820 COLOR 0,7,0
  1026. 24830 LOCATE 1,10
  1027. 24840 PRINT"RBBS-PC CPC13.1 Default Configuration "+VER$;:IF F THEN GOSUB 24970
  1028. 24850 COLOR FGR,BGR,BDR
  1029. 24860 LOCATE 1,68
  1030. 24870 PRINT"Page "+STR$(CN)+" of "+STR$(MB)
  1031. 24880 RETURN
  1032. 24890 A$="Enter parameter number to change, END to update, PgUp/PgDn to scroll.
  1033. 24900 LOCATE 24,1
  1034. 24910 PRINT A$;
  1035. 24920 PRINT STRING$((79-LEN(A$)),32);
  1036. 24930 LOCATE 24,LEN(A$)+1
  1037. 24940 COLOR FGR,BGR,BDR:HJ$="
  1038. 24950 I!=FRE(C$)
  1039. 24960 RETURN
  1040. 24970 LOCATE 2,10:A$="Private":IF F=2 THEN A$="Public"
  1041. 24980 COLOR 31,0,0:PRINT "("+A$+" Conference Maintenance Mode for "+MID$(ME$,1,INSTR(ME$,"M.DEF")-1)+")":COLOR FGR,BGR,BDR:RETURN
  1042. 25020 LOCATE 24,5:PRINT A$" record"+STR$(LOC(2))+" of "+UC$+" file.";:RETURN
  1043. 25030 IF PURGE THEN RETURN ELSE LOCATE 24,5:PRINT A$" record"+STR$(LOC(2))+" of "+ME$+" file.";:RETURN
  1044. 25040 GOSUB 50340
  1045. 25041 IF F=0 THEN GOTO 25050
  1046. 25042 XX$="End conference maintenance? (YES or NO)":GOSUB 50345:GOSUB 22380:ON AB GOTO 25050,25044,25142,25142
  1047. 25044 ME$=MAINMSG$
  1048. 25045 UC$=MAINUSR$
  1049. 25046 GOTO 12151
  1050. 25050 LOCATE 24,5:PRINT "Enter the name of the conference (seven characters or less) ";
  1051. 25060 LINE INPUT;HJ$
  1052. 25070 IF LEN(HJ$)<1 OR LEN(HJ$)>7 THEN GOTO 25040
  1053. 25075 GOSUB 50654:CP$=HJ$
  1054. 25080 GOSUB 50340
  1055. 25090 LOCATE 24,5:PRINT "Specify drive (A->"+M$+") containing this conference's files. ";
  1056. 25100 LINE INPUT;HJ$
  1057. 25110 IF LEN(HJ$)<>1 THEN GOTO 25080
  1058. 25112 GOSUB 50654
  1059. 25114 IF HJ$<"A" OR HJ$>M$ THEN GOTO 25090
  1060. 25120 CP$=HJ$+":"+CP$
  1061. 25140 ME$=CP$+"M.DEF
  1062. 25141 GOSUB 50340
  1063. 25142 XX$="Is this a private conference? (YES or NO)":GOSUB 50345:GOSUB 22380:ON AB GOTO 25144,25160,25141,25141
  1064. 25144 F=2:GOTO 12160
  1065. 25160 F=1:UG=0:UC$=CP$+"U.DEF":GOTO 12160
  1066. 25180 CLS:I!=FRE(C$):COLOR 0,7,0:LOCATE 1,23:PRINT"RBBS-PC CPC13.1 Default Configuration";:COLOR FGR,BGR,BDR
  1067. 25190 LOCATE  2,5:PRINT"The RBBS-PC "+CO$+" Commands are as follows:
  1068. 25200 LOCATE   3,8:PRINT"Command                       Security Level":RETURN
  1069. 25210 LOCATE 24,5:PRINT"Enter first character of command (CR to end)";:LINE INPUT;X$:IF X$="" THEN RETURN 16910 ELSE RETURN
  1070. 25220 CN=9
  1071. 25230 GOSUB 24800
  1072. 25240 LOCATE  3,10:PRINT"161. Will you be using DOS sub-directories? ------ "+M30$
  1073. 25250 LOCATE  4,10:PRINT"162. Upload to a DOS sub-directory? -------------- "+M31$
  1074. 25260 LOCATE  5,10:PRINT"163. Are downloads from DOS sub-directories? ----- "+M32$
  1075. 25262 IF M30$<>"YES" THEN GOTO 25280
  1076. 25264 LOCATE  6,10:PRINT"164. List, change, add, delete sub-directories."
  1077. 25280 GOSUB 24890
  1078. 25290 GOSUB 22160
  1079. 25300 IF IX THEN ON IX GOTO 12360,14200,14570,15340,25220,16910,21550,23000,25220,22350,23000,12190,25320
  1080. 25310 GOTO 25290
  1081. 25320 GOSUB 50340
  1082. 25330 IF HJ$="161" THEN GOTO 25380
  1083. 25335 IF M30$="NO" THEN GOTO 25400
  1084. 25340 IF HJ$="162" THEN GOTO 25420
  1085. 25350 IF HJ$="163" THEN GOTO 25460
  1086. 25360 IF HJ$="164" THEN GOTO 25495
  1087. 25370 GOTO 25280
  1088. 25380 XX$="Will you be using DOS sub-directories? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 25400,25410,25380,25380
  1089. 25400 M30$="NO":M31$=M30$:M32$=M30$:GOTO 25220
  1090. 25410 M30$="YES":GOTO 25220
  1091. 25420 XX$="Are uploads to a DOS sub-directory? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 25440,25450,25420,25420
  1092. 25440 M31$="NO":GOTO 25220
  1093. 25450 M31$="YES":GOTO 25220
  1094. 25460 XX$="Are downloads from DOS sub-directories? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 25480,25490,25460,25460
  1095. 25480 M32$="NO":GOTO 25220
  1096. 25490 M32$="YES":GOTO 25220
  1097. 25495 IF M31$="NO" THEN GOTO 25497 ELSE GOSUB 31060:A$="upload":PRINT"Change "+A$" DOS sub-directory? (YES or NO) ";
  1098. 25496 GOSUB 22380:ON AB GOTO 25497,25500,25495,25495
  1099. 25497 IF M32$="NO" THEN GOTO 25220 ELSE GOSUB 31060:A$="download":PRINT"List, change, add, delete "+A$" DOS sub-directories? (YES or NO) ";
  1100. 25498 GOSUB 22380:ON AB GOTO 25220,25505,25497,25497
  1101. 25500 IF M33$="" THEN GOTO 25502
  1102. 25501 LOCATE 23,5:PRINT SPC(74):LOCATE 23,5:PRINT"Current "+A$" DOS sub-directory name is "+M33$;
  1103. 25502 GOSUB 25850:IF LEN(HJ$)<1 THEN GOTO 25505
  1104. 25503 IF M6$=MID$(X$,1,1) THEN SWAP M33$,X$:IF X$="" THEN GOTO 25501 ELSE GOTO 25505
  1105. 25504 GOTO 25502
  1106. 25505 IF M32$="NO" THEN GOTO 25220 ELSE LOCATE 23,5:PRINT SPC(74):LOCATE 23,5:PRINT STR$(DNLD.SUB)+" of 99 download subdirectories designated.";
  1107. 25510 GOSUB 31060:PRINT"L>ist, C>hange, A>dd, D>elete "+A$" DOS sub-directories? (CR ends) ";
  1108. 25520 LINE INPUT;HJ$:
  1109. 25530 GOSUB 50654
  1110. 25560 IF LEN(HJ$)<1 GOTO 25220
  1111. 25565 IF LEN(HJ$)<>1 GOTO 25505
  1112. 25570 FF=INSTR("LCAD",HJ$)
  1113. 25580 IF FF=0 THEN GOTO 25510
  1114. 25585 IF DNLD.SUB=0 AND FF<>3 THEN GOTO 25510
  1115. 25590 ON FF GOSUB 25610,25670,25730,25670
  1116. 25600 GOTO 25505
  1117. 25610 LAST=(DNLD.SUB/16)+1:INCR=1:FOR IX=1 TO LAST:GOSUB 24800:LOCATE 4,1:PRINT"DOS sub-directories from which downloads are done:";:INDEX=4:FOR I=1 TO 16:LOCATE INDEX+I,1:PRINT DNLD$(INCR);:INCR=INCR+1:IF INCR>DNLD.SUB GOTO 25668
  1118. 25634 NEXT
  1119. 25636 XX$="More (YES or NO)":GOSUB 50345:GOSUB 22380:ON AB GOTO 25668,25644,25636,25636
  1120. 25644 NEXT
  1121. 25668 GOTO 25505
  1122. 25670 GOSUB 25850:IF LEN(HJ$)<1 THEN GOTO 25505
  1123. 25675 GOSUB 26030:A$=" not found!":IF X$="" THEN GOTO 25682
  1124. 25680 FOR I=1 TO DNLD.SUB:IF X$=DNLD$(I) THEN GOTO 25698 ELSE NEXT
  1125. 25682 GOSUB 31060:PRINT X$+A$;:A$="download":IA!=FNTI!+5:GOSUB 60440:GOTO 25505
  1126. 25698 IF FF=4 THEN FOR X=I TO DNLD.SUB:DNLD$(X)=DNLD$(X+1):NEXT:A$=" deleted!":DNLD.SUB=DNLD.SUB-1:GOTO 25682
  1127. 25700 IF FF=2 THEN A$="download":II=I:GOSUB 25850:GOSUB 26030:SWAP DNLD$(II),X$:A$=" changed!":GOTO 25682
  1128. 25730 X$="":GOSUB 25850:IF LEN(HJ$)<1 THEN GOTO 25505 ELSE FOR I=1 TO LEN(M7$):IF MID$(M7$,I,1)=LEFT$(X$,1) THEN GOTO 25735 ELSE NEXT:GOSUB 60380:GOSUB 31060:PRINT X$+" is not on a drive eligible for downloading.";:IA!=FNTI!+5:GOSUB 60440:GOTO 25730
  1129. 25735 IF X$="" THEN GOTO 25220 ELSE DNLD.SUB=DNLD.SUB+1:DNLD$(DNLD.SUB)=X$:GOTO 25505
  1130. 25850 GOSUB 31060:PRINT"Enter "+A$" DOS sub-directory name (CR to end). ";
  1131. 25860 LINE INPUT;HJ$:GOSUB 50654
  1132. 25861 IF LEN(HJ$)<1 THEN RETURN
  1133. 25862 IF LEN(HJ$)=2 AND INSTR(HJ$,":")=2 THEN X$=HJ$:RETURN
  1134. 25863 IF INSTR(HJ$,":\")<>2 THEN GOTO 25850
  1135. 25870 X$=HJ$
  1136. 25871 FOR I=4 TO LEN(X$)
  1137. 25872   Y=INSTR(I,X$,"\")
  1138. 25873   IF Y=0 THEN L1=LEN(X$)-I+1:GOTO 25876
  1139. 25874   IF Y<>0 THEN L1=Y-I+1:GOTO 25876
  1140. 25875 NEXT
  1141. 25876 HJ$=MID$(X$,I,L1)
  1142. 25878 IF LEN(HJ$)>12 THEN GOTO 25850
  1143. 25880 L1=INSTR(HJ$,"."):IF L1=0 THEN IF LEN(HJ$)<9 THEN GOTO 25920 ELSE GOTO 25850
  1144. 25890 IF L1>9 THEN GOTO 25850
  1145. 25900 IF L1<2 THEN GOTO 25850
  1146. 25910 IF LEN(HJ$)-L1>3 THEN GOTO 25850
  1147. 25915 I=0:GOSUB 25920:IF I=0 THEN RETURN ELSE GOTO 25850
  1148. 25920 FOR J=1 TO LEN(HJ$)
  1149. 25930     X=ASC(MID$(HJ$,J,1))
  1150. 25940     IF (X>63 AND X<91) THEN GOTO 26020
  1151. 25950     IF (X>47 AND X<58) THEN GOTO 26020
  1152. 25960     IF (X=33) THEN GOTO 26020
  1153. 25970     IF (X>34 AND X<42) THEN GOTO 26020
  1154. 25980     IF (X>43 AND X<47) THEN GOTO 26020
  1155. 25990     IF (X>96 AND X<124) THEN GOTO 26020
  1156. 26000     IF (X=125) THEN GOTO 26020
  1157. 26010 I=1:RETURN
  1158. 26020 NEXT: RETURN
  1159. 26030 FOR I=1 TO LEN(M7$):IF MID$(M7$,I,1)=MID$(X$,1,1) THEN RETURN
  1160. 26032 NEXT:X$="":RETURN
  1161. 30000 OK=0                      ' <---- check to see if file exists
  1162. 30010 NAME FILE$ AS FILE$       '   OK=0 means file not found
  1163. 30020 OK=-1                     '   OK=1 means file exists
  1164. 30030 RETURN
  1165. 30040 OPEN "R",2,ME$,128        ' <---- read MESSAGES checkpoint record
  1166. 30050 FIELD 2,128 AS RR$
  1167. 30060 GET 2,1
  1168. 30090 IO=VAL(MID$(RR$,1,8))     '  1-  8 = number of last message on system
  1169. 30100 ID=VAL(MID$(RR$,52,5))    ' 52- 56 = first rec. of user file
  1170. 30110 IE=VAL(MID$(RR$,57,5))    ' 57- 61 = next avail. user record
  1171. 30120 IG=VAL(MID$(RR$,62,5))    ' 62- 66 = last rec. of user file
  1172. 30130 IJ=VAL(MID$(RR$,68,7))    ' 68- 74 = first rec. of msgs file
  1173. 30140 II=VAL(MID$(RR$,75,7))    ' 75- 81 = next avail. msgs record
  1174. 30150 IH=VAL(MID$(RR$,82,7))    ' 82- 88 = last rec. of msgs file
  1175. 30152 IM=VAL(MID$(RR$,89,7))    ' 89- 95 = maximum number of messages
  1176. 30155 MC=VAL(MID$(RR$,127,2))   '127-128 = maximum number of "nodes"
  1177. 30160 CLOSE 2
  1178. 30170 RETURN
  1179. 30180 OPEN "R",2,FILE$,128      ' <---- get length of file
  1180. 30190 FIELD 2,128 AS RR$
  1181. 30200 UG=LOF(2)/128
  1182. 30210 CLOSE 2
  1183. 30220 RETURN
  1184. 30230 OPEN "R",2,ME$            ' <---- create new MESSAGES file
  1185. 30240 FIELD 2,128 AS RR$
  1186. 30245 A$="Creating preformatted"
  1187. 30270 LSET RR$=" 1"+SPACE$(124)+STR$(MC)
  1188. 30280 PUT 2,1                   ' write out blank checkpoint record
  1189. 30290 FOR J=2 TO IJ-1
  1190. 30300   GOSUB 31050
  1191. 30310   PUT 2                   ' write out "door" records of new file
  1192. 30320   GOSUB 25030
  1193. 30330 NEXT
  1194. 30370 FOR J=IJ TO IH
  1195. 30380   LSET RR$ = SPACE$(128)
  1196. 30390   PUT 2                   ' write out messages records of new file
  1197. 30400   GOSUB 25030
  1198. 30410 NEXT
  1199. 30420 IH=LOC(2)                 ' point to last available message record
  1200. 30425 CLOSE 2
  1201. 30430 GOSUB 30450
  1202. 30440 RETURN
  1203. 30450 CLOSE 2
  1204. 30455 OPEN "R",2,ME$            ' <---- update MESSAGES checkpoint record
  1205. 30460 FIELD 2,128 AS RR$
  1206. 30470 GET 2,1
  1207. 30490 MID$(RR$,52,46)=SPACE$(46)   'reset all counters before filling
  1208. 30500 MID$(RR$,52,5)=STR$(ID)   ' 52- 56 = first rec. of msgs file
  1209. 30510 MID$(RR$,57,5)=STR$(IE)   ' 57- 61 = next avail. user record
  1210. 30520 MID$(RR$,62,5)=STR$(IG)   ' 62- 66 = last rec. of user file
  1211. 30540 MID$(RR$,68,7)=STR$(IJ)   ' 68- 74 = first rec. of msgs file
  1212. 30550 MID$(RR$,75,7)=STR$(II)   ' 75- 81 = next avail. msgs record
  1213. 30560 MID$(RR$,82,7)=STR$(IH)   ' 82- 88 = last rec. of msgs file
  1214. 30562 MID$(RR$,89,7)=STR$(IM)   ' 89- 95 = maximum number of messages
  1215. 30565 HJ$=STR$(MC):IF MC>9 THEN HJ$=MID$(STR$(MC),2,2)
  1216. 30570 MID$(RR$,127,2)=HJ$       '127-128 = maximum number of "nodes"
  1217. 30580 PUT 2,1
  1218. 30590 CLOSE 2
  1219. 30600 RETURN
  1220. 30610 CLOSE 1
  1221. 30612 CLOSE 2
  1222. 30613 OPEN "R",1,ME$,128        ' <---- adjust size of the MESSAGES file
  1223. 30614 FIELD 1,128 AS R$         ' Open old MESSAGES file
  1224. 30615 A$=ME$:GOSUB 50095
  1225. 30616 OPEN "R",2,A$,128         ' Open new MESSAGES file
  1226. 30620 FIELD 2,128 AS RR$
  1227. 30635 A$="Copying"
  1228. 30640 OE=B1:IF MC<=B1 THEN OE=MC
  1229. 30650 GOSUB 50340
  1230. 30660 FOR J=1 TO OE+1
  1231. 30670   GET 1,J
  1232. 30680   LSET RR$=R$              ' write out existing checkpoint and
  1233. 30690   PUT 2                    ' existing "door" records
  1234. 30700   GOSUB 25030
  1235. 30710 NEXT
  1236. 30720 IF B1<=MC THEN GOTO 30780
  1237. 30730 FOR J = OE+1 TO B1
  1238. 30740   GOSUB 31050
  1239. 30750   PUT 2                    ' write out expansion "door" records
  1240. 30760   GOSUB 25030
  1241. 30770 NEXT
  1242. 30780 MC=B1                      ' set value for maximum number of nodes
  1243. 30820 FOR J=IJ TO II-1
  1244. 30830   GET 1,J
  1245. 30831   IF NOT PURGE THEN GOTO 30840
  1246. 30832   IF MID$(R$,116,1)=CHR$(225) THEN PRINT"Msg #"+LEFT$(R$,5)+" copied...":GOTO 30840
  1247. 30833   IF MID$(R$,116,1)=CHR$(226) THEN PRINT"Msg #"+LEFT$(R$,5)+"          purged...":J=LOC(1)+VAL(MID$(R$,118,6)):GOTO 30830
  1248. 30840   LSET RR$=R$
  1249. 30850   PUT 2                    ' write out existing message records
  1250. 30860   GOSUB 25030
  1251. 30870 NEXT
  1252. 30875 B1=LOC(2)+1                ' get new file's next message record
  1253. 30880 CLOSE 1
  1254. 30900 IF B3!<LOC(2)+1 THEN GOTO 30960
  1255. 30905 IF PURGE THEN II=LOC(2)+1:PURGE=0:A$="Preformatting"
  1256. 30910 FOR J!=II TO B3!
  1257. 30920   LSET RR$ = SPACE$(128)
  1258. 30930   PUT 2                    ' write out expansion message records
  1259. 30940   GOSUB 25030
  1260. 30950 NEXT
  1261. 30960 IJ=1+MC+1:II=B1:IH=LOC(2):CLOSE 2
  1262. 30980 XX$="Delete the old "+ME$+" file? (YES or NO)?":GOSUB 50345:GOSUB 22380:ON AB GOTO 31000,31020,30980,30980
  1263. 31000 A$=ME$:GOSUB 50096:NAME ME$ AS A$
  1264. 31010 GOTO 31030
  1265. 31020 KILL ME$
  1266. 31030 A$=ME$:GOSUB 50095:NAME A$ AS ME$
  1267. 31035 GOSUB 30450
  1268. 31040 RETURN
  1269. 31050 LSET RR$=SPACE$(31)+"-1 0 0 0 0 0 0 0    0 0 0I":RETURN
  1270. 31060 GOSUB 50340:LOCATE 24,5:RETURN
  1271. 50000 OPEN "R",2,UC$            ' <---- create a new USERS file
  1272. 50010 FIELD 2,128 AS U$
  1273. 50015 GOSUB 50340
  1274. 50016 A$="Creating preformatted"
  1275. 50020 FOR J=ID TO IG
  1276. 50030   LSET U$ = SPACE$(128)
  1277. 50040   PUT 2
  1278. 50050   GOSUB 25020
  1279. 50060 NEXT
  1280. 50080 CLOSE 2
  1281. 50090 RETURN
  1282. 50095 IF INSTR(A$,".") THEN A$=MID$(A$,1,INSTR(A$,".")-1)+".BAK":RETURN ELSE A$=A$+".BAK":RETURN
  1283. 50096 IF INSTR(A$,".") THEN A$=MID$(A$,1,INSTR(A$,".")-1)+".OLD":RETURN ELSE A$=A$+".OLD":RETURN
  1284. 50100 OPEN "R",2,ME$
  1285. 50110 FIELD 2,128 AS RR$
  1286. 50114 IF F=1 THEN IO=1
  1287. 50115 GOSUB 50340
  1288. 50120 LSET RR$=" 1      "+SPACE$(118)+STR$(MC)
  1289. 50130 PUT 2,1                       ' write out first record of new file
  1290. 50140 FOR J!=2 TO MC+1
  1291. 50150   GOSUB 31050
  1292. 50160   PUT 2                       ' write out "door" records of new file
  1293. 50170   GOSUB 25030
  1294. 50180 NEXT
  1295. 50190 IJ=LOC(2)+1                ' point to first message record
  1296. 50200 II=IJ                   ' point to next available message record
  1297. 50210 IF MC+1=MQ! THEN GOTO 50270
  1298. 50220 FOR J!=MC+2 TO MQ!
  1299. 50230   LSET RR$ = SPACE$(128)
  1300. 50240   PUT 2                       ' write out messages records of new file
  1301. 50250   GOSUB 25030
  1302. 50260 NEXT
  1303. 50270 IH=LOC(2)                  ' point to last available message record
  1304. 50280 GOSUB 30040
  1305. 50290 RETURN
  1306. 50340 I!=FRE(C$):LOCATE 24,1:PRINT STRING$(79,32);:RETURN
  1307. 50345 GOSUB 50340:LOCATE 24,5:PRINT XX$;:RETURN
  1308. 50350 F$=UC$
  1309. 50360 IF INSTR(UC$,".") THEN F$=MID$(UC$,1,INSTR(UC$,".")-1)
  1310. 50370 RETURN
  1311. 50480 UB=8
  1312. 50490 NAME UC$ AS UC$
  1313. 50500 OPEN "R",1,UC$
  1314. 50510 IF UB<LOF(1)/128 THEN UB=LOF(1)/128
  1315. 50520 UG=LOF(1)/128:CLOSE 1:RETURN
  1316. 50530 MQ!=(5*MP)+1+MC
  1317. 50540 NAME ME$ AS ME$
  1318. 50550 OPEN "R",1,ME$
  1319. 50560 IF MQ!<LOF(1)/128 THEN MQ!=LOF(1)/128
  1320. 50570 CLOSE 1:RETURN
  1321. 50580 OLD=LOC(1):GET 1,I
  1322. 50590 IF (MID$(R$,116,1)=CHR$(225) OR MID$(R$,116,1)=CHR$(226)) AND (MID$(R$,61,1)=":" AND MID$(R$,64,1)=":" AND MID$(R$,70,1)="-" AND MID$(R$,73,1)="-") THEN RETURN
  1323. 50600 PRINT "Message chain broken at record number "+STR$(OLD)
  1324. 50610 PRINT "Message chain repair in progress!
  1325. 50620 FOR IQ=OLD+1 TO II-1
  1326. 50630   GET 1,IQ
  1327. 50640   IF (MID$(R$,116,1)=CHR$(225) OR MID$(R$,116,1)=CHR$(226)) AND (MID$(R$,61,1)=":" AND MID$(R$,64,1)=":" AND MID$(R$,70,1)="-" AND MID$(R$,73,1)="-") THEN GOTO 50660
  1328. 50645 NEXT
  1329. 50650 GOTO 23730
  1330. 50654 ' Convert Lower Case to Upper Case -------
  1331. 50655 FOR Z=1 TO LEN(HJ$):MID$(HJ$,Z,1)=CHR$(ASC(MID$(HJ$,Z,1))+32*(ASC(MID$(HJ$,Z,1))>96)):NEXT:RETURN
  1332. 50660 GET 1,OLD
  1333. 50670 MID$(R$,118,6)=STR$(IQ-OLD)
  1334. 50680 PUT 1,OLD
  1335. 50690 PRINT "Message chain repaired.
  1336. 50700 I=IQ
  1337. 50710 RETURN
  1338. 50720   JX=30:WHILE MID$(O.N$,JX,1)=" ":JX=JX-1:WEND:X$=MID$(O.N$,1,JX)
  1339. 50721   UIX#=FNHSH(X$):Q=FNHSH2(X$):NSR=1:RO=CSRLIN:CO=POS(0)
  1340. 50722   GET 2,UIX#
  1341. 50724   IF MID$(N$,1,7)="       " THEN 50730
  1342. 50726   UIX#=UIX#+Q:IF UIX#>UB THEN UIX#=UIX#-UB
  1343. 50728   NSR=NSR+1:LOCATE RO,CO:PRINT "searching";UIX#;:GOTO 50722
  1344. 50730 LSET N$=O.N$:LSET PW$=OG$:LSET SL$=OH$:LSET OP$=OI$:LSET CS$=OJ$:LSET MA$=OL$:LSET TD$=OM$:LSET LND$=OO$:LSET UDL$=OQ$:LSET UUL$=OS$:LSET ET$=OT$
  1345. 50820   PUT 2,UIX#:IE=IE+1:LOCATE RO,CO:PRINT "to pos#";UIX#;" /";NSR;" srch(s)"
  1346. 50830   RETURN
  1347. 50840 FOR J=A!+1 TO UB
  1348. 50850   LSET N$   = SPACE$(31):LSET PW$  = SPACE$(15):LSET SL$  = MKI$(-32000):LSET OP$  = SPACE$(14):LSET CS$  = SPACE$(24):LSET MA$  = SPACE$(19)
  1349. 50910   LSET TD$  = SPACE$(14):LSET LND$ = SPACE$(3):LSET UDL$ = SPACE$(2):LSET UUL$ = SPACE$(2):LSET ET$  = SPACE$(2)
  1350. 50970   PUT 2:GOSUB 25020
  1351. 50980 NEXT:RETURN
  1352. 60000 REM
  1353. 60010 REM * HANDLE ERROR CONDITIONS *
  1354. 60020 ' PRINT ERR,ERL:STOP
  1355. 60030 IF ERR=53 AND ERL=30010 THEN RESUME 30030
  1356. 60031 IF ERR=58 AND ERL=30010 THEN RESUME 30020
  1357. 60040 IF ERR=62 AND (ERL=11600 OR ERL=11620 OR ERL=11640 OR ERL=11705 OR ERL=11706) THEN PRINT CA$+" from a version earlier than CPC13.1 on default drive.":PRINT "Please delete and rerun CONFIG.":RESUME 60340
  1358. 60140 IF ERL=31000 AND ERR=58 THEN KILL A$:RESUME 31000
  1359. 60150 IF ERL=31030 AND ERR=58 THEN KILL A$:RESUME 31030
  1360. 60170 IF ERL=22120 AND ERR=6 THEN RESUME 22100
  1361. 60270 IF ERL=24750 AND ERR=58 THEN KILL A$:RESUME 24750
  1362. 60278 IF ERL=50490 AND ERR=58 THEN RESUME 50500
  1363. 60280 IF ERL=50540 AND ERR=58 THEN RESUME 50550
  1364. 60282 IF ERL=50490 OR ERL=50540 THEN RESUME 15230
  1365. 60285 IF ERR=61 THEN PRINT "ERROR - IBM DOS DISKETTE FULL ":RESUME 60340
  1366. 60290 IF ERR=67 THEN PRINT "ERROR - IBM DOS DIRECTORY FULL":RESUME 60340
  1367. 60300 IF ERR=70 THEN PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED":RESUME 60340
  1368. 60310 IF ERR=71 THEN PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE":RESUME 60340
  1369. 60320 IF ERR=72 THEN PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE":RESUME 60340
  1370. 60330 PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$
  1371. 60340 IF F=1 THEN GOSUB 10540:IA!=FNTI!+5
  1372. 60350 GOSUB 60440
  1373. 60360 SYSTEM
  1374. 60370 PRINT "Unable to create preformatted "+UC$+" file.":GOTO 60340
  1375. 60380 FOR I=1 TO 3:SOUND 1000*I,1:NEXT:RETURN
  1376. 60440 ' wait routine
  1377. 60450 IF FNTI!<IA! THEN GOTO 60450
  1378. 60460 RETURN
  1379.